C const的默认类型是什么?

时间:2014-08-06 22:54:04

标签: c types

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

const fee;

然而,它最初没有被删除,因为编译器和我没有抓住它。所以我很好奇为什么C允许这个以及什么是默认类型。

1 个答案:

答案 0 :(得分:14)

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

请注意,声明的声明说明符部分不能完全省略,例如仅仅

fee;

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

static fee;
const fee;
register fee;

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

相关问题