const需要类型说明符吗?

时间:2009-10-26 10:36:49

标签: c++ const

这里需要一个类型说明符吗?

const c = 7;

Bjarne Stroustrup的'The C ++ Programming Language'(第80页)说这是非法的。但是,我一直在练习一些brainbench测试,其中一个问题表明类型默认为int。 Brainbench通常是正确的,所以我不确定哪个参考是正确的,我一直无法找到标准中的任何内容。有没有人有明确的答案和参考?

3 个答案:

答案 0 :(得分:14)

int的默认类型对C有效,但对C ++无效。即使在C中,也应该避免这种编码风格。另请注意,Bjarne Stroustrup的书是标准C ++最权威的参考书之一。

答案 1 :(得分:3)

对于C ++,我认为Stroustrup可以超越任何地方,但是标准。

也许问题是关于C而不是C ++?

第7.1.6节中的draft C++0x standard

  

除非声明构造函数,否则声明中至少需要一个不是cv-quali fi er的类型指定者,   析构函数或转换函数.83类型特定的seq不应定义类或枚举,除非它   出现在别名声明(7.1.3)的type-id中。

答案 2 :(得分:2)

我无法对标准说话......但只是看一下像const c = 7;这样的声明会给我带来糟糕的代码风格。至于编译器兼容性......它可能会被击中。编译C ++文件(.cpp扩展名)时,Microsoft Visual Studio的编译器不会有任何部分,但在编译C文件(.c扩展名)时不会阻塞它,主要是因为C标准允许将默认变量作为{ {1}}当没有指定类型时。