【发布时间】:2011-06-15 13:10:17
【问题描述】:
需要在编译时初始化一个联合成员。 阅读一些文章似乎除了定义第一个之外别无他法 加入工会。除非您使用 C99,否则您可以专门定义每个联合成员。
问题是我使用 Visual Studio 2010 Prof. 它似乎不支持 C99 或者我如何启用 ist? 还是有其他方法来初始化联合成员?
谢谢
typedef union {
int a;
char *atxt;
} MY_UNION_t;
typedef struct {
int foo;
MY_UNION_t un;
}GEN_DATA_t;
/* need to do following: */
GEN_DATA_t obj1 = {0,1}; /* Okay works */
GEN_DATA_t obj2 = {0,"bla"}; /* Does not work */
/* ISO C99 allows: */
GEN_DATA_t obj3 = {0,.atext="bla"}; /* However MS VS seem not to support this */
【问题讨论】:
-
您正在尝试将常量字符串文字转换为非常量字符指针,不是吗?首先,我认为这不是一个好主意。
标签: c data-structures