繁体   English   中英

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

[英]Difference between const variable and const type variable

有什么区别:

const variable = 10;

const int variable = 10;

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

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

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

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

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

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

更新:我已经用VS-2005检查了它,你可以使用隐式int

#pragma warning(disable:4430)
const variable = 10;

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM