Tim*_*per 2 c initialization unions
我与宣言有一个联盟:
union test_u
{
int i;
char *str;
};
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用代码尝试使用"second"字段中的数据初始化变量:
union test_u test = {"Sample"}; // char *, not int
Run Code Online (Sandbox Code Playgroud)
在尝试编译时,我收到错误:
file.c:72:11:警告:初始化从指针生成整数而没有强制转换
是否有可能以与上面相同的方式初始化变量?编译器(在C89下)是否应该在初始化中接受一个intto char *?
在C99中,可以使用指定的初始化程序:
union test_u test = { .str = "Sample" };
Run Code Online (Sandbox Code Playgroud)