Code Bye

extern const int 与const int有什么区别

代码如下:
a.h
extern const int m;

a.cpp
const int m=100;
main.cpp
#include “a.h”
int main(int argc,char **argv  )
{

switch( value )
{
case m:
printf(“m=%d\n”,m);
break;

}

}
如上代码,a.cpp中定义了const int m;然后在a.h中extern做了声明。在main.cpp中调用了m。
这时候编译报错:
error: “m” cannot appear in a constant-expression
问一下这是为什么?应该怎么样修改?
编译器是:arm-unknown-nto-qnx6.6.0eabi-g++-4.7.3.exe
解决方案

20

直接把 const int m = 100; 放到 a.h 里。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明extern const int 与const int有什么区别