我正在学习关于const
类型限定符,而我不小心写了以下代码,这些代码是我用gcc -Wall -Wextra
编译的:
#include <stdio.h>
int main(void)
{
const a = 5;
printf("%d\n", a);
return 0;
}
编译器会发出以下警告:
warning: type defaults to ‘int’ in declaration of ‘a’ [-Wimplicit-int]
const a = 5;
^
程序的输出为5
。我尝试使用其他类型限定符(如const
和volatile
来更改_Atomic
,但得到了相同的结果。我尝试使用restrict
,但出现错误,因为我认为此关键字需要指针。
我的问题是,C标准中是否有任何语法规则,要求编译器将类型隐式设置为int类型变量,而该类型由类型限定符指定而没有特定类型,或者是gcc特定扩展? / p>