加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

无论如何我是否可以在没有预处理器指令的条件基础上初始化成员?

发布时间:2020-12-16 10:11:14 所属栏目:百科 来源:网络整理
导读:我有一系列结构.在初始化期间,我需要在条件基础上初始化.说 struct struct_name[arraySize] = { {1,'a'},{2,'b'},#if condition {3,'c'}#else {4,'d'}#endif }; 在上面的代码中,我使用预处理器指令控制初始化.无论如何,我可以在不使用预处理器指令的情况下进
我有一系列结构.在初始化期间,我需要在条件基础上初始化.说

struct struct_name[arraySize] = { {1,'a'},{2,'b'},#if condition
    {3,'c'}
#else
    {4,'d'}
#endif
    };

在上面的代码中,我使用预处理器指令控制初始化.无论如何,我可以在不使用预处理器指令的情况下进行此条件编译吗?

解决方法

是的,使用三元运算符,就像这样.

#include <stdio.h>

struct struc {
    int number;
    char letter;
    };

int main()
{
    int condition = 1;
    struct struc array[] = {{1,{condition ? 3:4,condition ? 'c':'d'}};
    return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读