有什么区别:
const variable = 10;
和
const int variable = 10;
根据标准,变量是否在未定义类型时被解释为整数类型?
答案 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没有任何关系。