c - 这在 C 中允许吗?

标签 c syntax iar

我用 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/

相关文章:

c - 在C中读写AT命令到串口

c - 数组和 C 语法

php - 在echo中使用html标签以及从数据库中调用数据

c++ - 为什么这个列表实现比 STL 列表占用更多空间?

arm - 在没有 IAR 的情况下将 IAR 输出写入 ARM 芯片

有人可以帮我找出为什么没有输出吗?

c - 将标准输入重定向到简单 C 行阅读器应用程序的 csh 脚本时出现问题

c - 如何将 C#defines 包含在 .icf 链接器文件中?

C - Valgrind 和 "Conditional jump or move depends on uninitialised value(s)"错误

python - 解析 Python 函数调用以获取参数位置