我见过一个可以自行打印的程序,如下所示:
main(a){printf(a,34,a="main(a){printf(a,34,a=%c%s%c,34);}",34);}
我的问题是:为什么它可以传递a
而不在main
函数中指定任何类型?我知道main
函数的论据是void
或argc, argv
。那么,a
在这里意味着什么?
答案 0 :(得分:2)
这是C(K& R,C89)的隐式int 特征。如果省略了类型,则解析器会假定int
。 IIRC在C99中标记为过时。它还允许您编写类似
static foo; /* static int foo; */