我正在编写一些 C 代码,并注意到我认为是错误的地方,但事实并非如此。我有以下类型声明语句。
const fee;
然而,它最初没有被捕获,因为编译器和我没有捕获它。所以我很好奇为什么 C 允许这样做以及默认类型是什么。
只有原始版本的 C 语言标准 (ANSI/ISO C89/90) 允许这样做。此类变量声明默认为类型int
按照“隐含的int
“规则。该规则从一开始就存在于 C 中。这就是该语言最初的定义方式。
请注意,声明说明符声明的一部分不能完全省略,例如仅仅
fee;
没有声明int
多变的。即使在原始 C 中也是非法的。但是一旦添加某种声明说明符或限定符,声明就变得合法并默认为int
类型,如
static fee;
const fee;
register fee;
然而,所有这些在 C99 和更高版本的语言中都是非法的,因为这些版本的语言规范禁止“隐式 int”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)