Kir*_*ran -5 c program-entry-point
void main(i)
{
printf("%d",i);
}
Run Code Online (Sandbox Code Playgroud)
main(i)
这里有什么意义以及它是如何运作的?什么是价值和类型i
?
void main(i)
Run Code Online (Sandbox Code Playgroud)
声明一个没有类型的函数参数仅在旧的,过时的C90标准中有效.i
然后在C90中默认键入int
.
如果此代码用于独立实现(嵌入式系统或操作系统),则它在C90中有效.这相当于void main (int i)
.您的编译器需要记录这种形式的main()应该做什么.
如果此代码用于托管实现(在OS上运行的编程),则该代码无效且无法编译.C90 2.1.2.2托管环境只允许两种形式的main():
int main(void)
int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)
在较新的C标准中,无论是独立还是托管,代码都将无效,因为已从语言中删除了"default to int"规则.