【问题标题】:What is the default type for C const?C const 的默认类型是什么?
【发布时间】:2014-09-30 01:12:58
【问题描述】:

我正在编写一些 C 代码,并注意到我认为是一个错误,但事实并非如此。我有以下类型声明语句。

const fee;

但是,它最初没有被捕获,因为编译器和我没有捕获它。所以我很好奇为什么 C 允许这样做以及默认类型是什么。

【问题讨论】:

标签: c types


【解决方案1】:

只有原始版本的 C 语言标准 (ANSI/ISO C89/90) 允许这样做。根据“隐式int”规则,此类变量声明默认类型为int。该规则从一开始就存在于 C 中。这就是语言最初的定义方式。

请注意,声明的 declaration-specifiers 部分不能完全省略,例如只是

fee;

不声明int 变量。即使在原始 C 中也是非法的。但是一旦添加了某种声明说明符或限定符,声明就变得合法并默认为 int 类型,如

static fee;
const fee;
register fee;

但是,所有这些在 C99 和更高版本的语言中都是非法的,因为这些版本的语言规范禁止“隐式 int”。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-28
  • 1970-01-01
  • 2010-12-06
  • 1970-01-01
  • 2012-11-29
相关资源
最近更新 更多