C中的每个函数都必须有一个调用约定,但是main
函数的调用约定是什么(我认为它是cdecl
调用约定,但我不确定)?
答案 0 :(得分:3)
这取决于架构和平台。许多x86 C运行时规范要求main为cdecl
,但它绝不保证。
最重要的是,您不会在C标准中找到此信息,因为该语言不依赖于任何一种体系结构。您可能会更幸运地阅读您感兴趣的特定编译器的文档。
答案 1 :(得分:2)
C语言没有定义调用约定,但是处理器架构和开发平台没有。 对于X86调用约定,请检查wiki https://en.wikipedia.org/wiki/X86_calling_conventions
另请参阅下面的链接http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042f/IHI0042F_aapcs.pdf
中的ARM调用约定更多关于调用约定的信息,请参阅下面的wiki链接 https://en.wikipedia.org/wiki/Calling_convention
另外,请在GCC MIPS-32 Calling Conventions / Stack Frame Definition
检查有关MIPS调用约定的讨论