首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这个是不是GCC的bug?该怎么处理

2012-05-01 
这个是不是GCC的bug?C/C++ code~/wk$ gcc -v使用内建 specs。COLLECT_GCCgccCOLLECT_LTO_WRAPPER/usr/lib

这个是不是GCC的bug?

C/C++ code
~/wk$ gcc -v使用内建 specs。COLLECT_GCC=gccCOLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.6.3/lto-wrapper目标:x86_64-redhat-linux配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux线程模型:posixgcc 版本 4.6.3 20120306 (Red Hat 4.6.3-2) (GCC) ~/wk$ cat t.cint main(void){    enum t{ a,b,c,e,f }A;    A = 1;    return 0;}~/wk$ gcc t.c~/wk$ 


A是enum t类型变量,给它赋值1,应该报错,至少也是个警告啊.怎么机顺利编译通过了呢?

[解决办法]
可能是当int变量处理的 看下生成的汇编代码就知道了
[解决办法]
enum在c/c++里面就是个const int类型的
[解决办法]
在我的记忆中,这是可以的.

但我几乎从来不这么做枚举..
[解决办法]
还记得一个,c里面枚举可以自增..
int main(void){
? enum t{ a,b,c,e,f }A;
? A++; //这个都是允许的,那么 A=1允许也就不奇怪了.
? return 0;
}

[解决办法]
这个在C中是允许的。C++可能类型稍严格一点,可能会报个warning,但肯定是可以编译通过的。
[解决办法]
呃 刚试了下,C++是不可以的
[解决办法]
这个与gcc没关系吧。
在VC下面也一样没有警告。更不用说错误了。
[解决办法]
呵呵,中文教材都是东抄西抄,不少c++的都变成c的啦...

热点排行