C语言中除入口int main外能否安全使用名称含main的函数?
结论
你的初始理解完全正确,相关规则如下:
- IBM文档中提到的「只能存在一个main函数」限制,仅针对被显式指定为程序入口点的函数,和普通函数的命名、参数列表没有任何关系。
- 你完全可以在同一个程序中同时定义
int main(int argc, char **argv)(默认入口函数)和int sub_main(int argc, char **argv)(普通业务函数),不会有任何冲突。 - 不存在“函数名包含main子串、或参数列表为
(int argc, char **argv)就会触发错误”的规则,所以完全不需要调整sub_main的参数顺序来规避问题。
你提到的IPA(过程间分析)报错场景,只有当你通过编译选项给程序指定了多个入口点时才会触发,和普通函数的定义规则无关。你实际运行没有异常就是符合规则的直接证明。
内容的提问来源于stack exchange,提问作者Tatiana Komaristaia
相关产品推荐
相关产品推荐

