使用gcc(resp.MinGW)编译器,C中的函数是否有最大数量的参数?

 钱靖均秀蓉怡慧 发布于 2022-12-18 23:17

我知道在遵循良好做法时我永远不会达到这样的限度.但是,我需要使用一个带有大量参数的自动生成的函数(我不能用它改变任何东西,我从别人那里接收函数).

那么:我可以在gcc resp中使用的最大参数数量是多少.MinGW的?

我发现了这个关于C++语言规范的内容.而这关于C语言标准的限制.我感兴趣的是"现实世界"限制/实施细节是什么的问题.特别是在gcc和MinGW.

另外:达到这样的限制时,我可以期待什么样的错误消息?当通过extern "C"声明在C++应用程序中使用C代码时,这是否会对"正常"C限制产生任何影响?这里可能适用除参数数量之外的其他限制,例如最大线长度?或者最大堆栈大小?

谢谢!

1 个回答
  • C标准5.2.4.1说:

    4095 characters in a logical source line
    127 parameters in one function definition
    127 arguments in one function call
    

    如果你有巨大的结构作为参数,那么堆栈大小(1MB - 8MB)是一个限制.

    但所有这些限制都远离所有好的做法.

    https://gcc.gnu.org/onlinedocs/gcc-4.3.5/cpp/Implementation-limits.html表示gcc有更高的限制(仅限于可用内存).

    2022-12-18 23:27 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有