我用 C 写了下面这行。 我想知道该语言是否支持。 它是这样的:
char * mode[7] = Config_Msg.DHCP ? "DHCP" : "Static";
基本上我想在模式中插入“DHCP”或“STATIC”的字符串值,具体取决于 Config_Msg.DHCP 中的值。
当我在 IAR 中编译时,我收到此警告:
Warning[Pe520]: initialization with "{...}" expected for aggregate
这个警告是什么意思?
最佳答案
警告意味着您的问题的答案是否定的。您正在做的事情可以在运行时完成,但在初始化程序中无效。只写:
char * mode; mode = Config_Msg.DHCP ? "DHCP" : "Static";
经过仔细检查,这不是您发出警告的来源。您错误地将 mode 声明为 7 个指针的数组,因此编译器期望进行以下形式的初始化:
char * mode[ 7 ] = { "one", "two", "three" };
(其余四个条目将被初始化为全零)。
关于c - 这在 C 中允许吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8025897/