指定类型限定符时隐式int声明变量

时间:2018-06-26 16:00:44

标签: c gcc

我正在学习关于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。我尝试使用其他类型限定符(如constvolatile来更改_Atomic,但得到了相同的结果。我尝试使用restrict,但出现错误,因为我认为此关键字需要指针。

我的问题是,C标准中是否有任何语法规则,要求编译器将类型隐式设置为int类型变量,而该类型由类型限定符指定而没有特定类型,或者是gcc特定扩展? / p>

0 个答案:

没有答案