我是 C 的新手,正在从 C 编程,第 4 版学习 C。斯蒂芬·科尚着。在第 29 页,他写道 $
不是变量名称的有效字符。他使用的是C11标准。
我写了下面的代码
#include <stdio.h>
int main (void)
{
int a$ = 1;
printf ("%i", a$);
return 0;
}
并使用命令 gcc -std=c11 -pedantic practice.c -o practice.o && ./practice.o
运行它。我的文件名为 practice.c
。
输出是1
。编译器不应该给我一个使用 $
的警告吗?对标识符使用 $
符号不是 GCC 提供的扩展吗?
我在 Ubuntu 18.10 中使用 GCC 8.2.0。
编辑:
此外,当我使用 -std=c11
时,GCC 不会使用 GNU 扩展吗?这就是本书附录(第 497 页)中所写的内容。
不过,我在使用 -std=c89
时收到警告。
最佳答案
您会收到 -std=c89 -pedantic
的警告。 C99 及更高版本允许 other implementation-defined characters在标识符中。
关于c - 为什么 gcc 不显示在变量名中使用 $ 的警告消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55087023/