const变量和const类型变量之间的区别

时间:2010-07-13 15:29:13

标签: c++ const

有什么区别:

const variable = 10;

const int variable = 10;

根据标准,变量是否在未定义类型时被解释为整数类型?

4 个答案:

答案 0 :(得分:8)

const variable = 10无效C ++,而const int variable = 10;是。

唯一一次(我能想到)const variable = 10是有效的,如果你有一个名为variable的类型,并且你有一个带有该类型的未命名参数的函数,则采用默认值参数:

typedef int variable;
void foo(const variable = 10);

答案 1 :(得分:2)

这意味着x被隐式声明为int。这在C ++中是不允许的,但在C中并且为了保持与C头文件或ISO C ++之前的代码兼容,许多当代C ++编译器仍然支持这一选项。

我的GCC 4.4编译器在这里修改“const x = 3;”当在命令行上输入-fms-extensions时(手册说,它打开了几个需要理解MFC代码的灯)

更新:我已经使用VS-2005进行了检查,如果使用

,则可以使用隐式int
#pragma warning(disable:4430)

答案 2 :(得分:1)

const variable = 10;

几乎不会在所有新的现代C ++编译器中编译。

答案 3 :(得分:0)

没有严格的规则(K& R C等编辑:即旧C),默认情况下int是类型。它当然并不意味着变量没有类型,它与const没有任何关系。