为什么静态标志而不是静态int标志不会给出任何错误?

Jee*_*tel 1 c

我曾经写过一次匆忙

#include <stdio.h>

static flag;            
int main()
{
printf("flag is %d",flag);
return 0;
} 
Run Code Online (Sandbox Code Playgroud)

它不会给出任何警告或错误,并且工作正常.我不明白为什么这会起作用?

ham*_*ene 7

C假设int缺少类型.对于函数定义及其参数也是如此:

// same as int add(int x, int y)
add(x,y) { return x + y; }

// same as int main()
main()
{
}
Run Code Online (Sandbox Code Playgroud)

  • @paxdiablo显然,必须至少有存储说明符或类型,你不能省略它们,尽管我的GCC接受(带警告). (2认同)