我在C中写了以下这一行.我想知道该语言是否支持.它是这样的:
char * mode[7] = Config_Msg.DHCP ? "DHCP" : "Static";
Run Code Online (Sandbox Code Playgroud)
基本上我想在模式中插入"DHCP"或"STATIC"的字符串值,取决于Config_Msg.DHCP中的值.
当我在IAR中编译时,我收到此警告:
Warning[Pe520]: initialization with "{...}" expected for aggregate
Run Code Online (Sandbox Code Playgroud)
这个警告意味着什么?
警告意味着您的问题的答案是否定的.您正在做的事情可以在运行时完成,但它在初始化程序中无效.写吧:
char * mode; mode = Config_Msg.DHCP ? "DHCP" : "Static";
经过仔细检查,这不是您警告的来源.您错误地将模式声明为7个指针的数组,因此编译器期望初始化表单:
char * mode[ 7 ] = { "one", "two", "three" };
(其余四个条目将初始化为全零).