我们可以将任何参数传递给main函数吗?

时间:2012-09-23 11:56:52

标签: c gcc

我见过一个可以自行打印的程序,如下所示:

main(a){printf(a,34,a="main(a){printf(a,34,a=%c%s%c,34);}",34);}

我的问题是:为什么它可以传递a而不在main函数中指定任何类型?我知道main函数的论据是voidargc, argv。那么,a在这里意味着什么?

1 个答案:

答案 0 :(得分:2)

这是C(K& R,C89)的隐式int 特征。如果省略了类型,则解析器会假定int。 IIRC在C99中标记为过时。它还允许您编写类似

的声明
 static foo;   /* static int foo; */