[C/C++] Anonymous field in struct

I have below code and try to bring under unit test with CppUtest in Linux.

 1 typedef union {
 2   unsigned char Byte;
 3   struct {
 4     byte             :1; 
 5     byte             :1; 
 6     byte             :1; 
 7     byte             :1; 
 8   } Bits;
 9 
10 } foo;

And got compile error: "error: type of bit-field ‘<anonymous>’ is a GCC extension [-pedantic] "  with gcc.

Had a searching and it's said in gcc it's not supported. We can use g++ if we can to compile such kind of code.

See more in http://stackoverflow.com/questions/1972003/how-to-use-anonymous-structs-unions-in-c

Workaround I applied to the makefile is to force CppUtest use g++ for .c files: by adding  CC = g++  in it.

 

posted on 2012-05-07 11:45  Lifen, Song  阅读(560)  评论(0编辑  收藏  举报

导航