gpt4 book ai didi

c - 除了不能在任何程序中使用的变量名之外,cdecl 中不允许使用哪些变量名?

转载 作者:行者123 更新时间:2023-11-30 15:22:15 25 4
gpt4 key购买 nike

我一直在玩cdecl我注意到有些名称不允许作为标识符,尽管 GCC 可以完美地编译它们。

例如,如果我写

int ptr;

int pointer;

int array;

cdecl 给出了“语法错误”,但是当我在程序中使用它时,GCC 编译它们没有任何问题。因此,有些标识符在 cdecl 中是不允许的。

哪些标识符不能在cdecl中使用,但可以在程序中使用(即程序编译)?为什么他们不被允许?

最佳答案

pointerarray 位于 cdecl 的保留关键字列表中:

char *keywords[] = {
"function",
"returning",
"array", // <--
"pointer", // <--
"reference",
"member",
"const",
"volatile",
"noalias",
"struct",
"union",
"enum",
"class",
"extern",
"static",
"auto",
"register",
"short",
"long",
"signed",
"unsigned",
"char",
"float",
"double",
"void",
NULL
};

至于ptr,我不知道为什么cdecl认为它是无效的。在 cdecl 中输入以下表达式也会失败:

declare ptr as int

但这有效:

declare ptr1 as int

很明显它也不喜欢ptr

关于c - 除了不能在任何程序中使用的变量名之外,cdecl 中不允许使用哪些变量名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29258074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com