在C中使用结构值和全部

在C中使用结构值和全部,c,struct,C,Struct,我对C和编程基本上是新手,所以我不知道很多词汇,如果你不理解我的问题,很抱歉 #define define1 "\x1F\C0\x00\xF1" #define define2 "\x3F\xD0\x01\xF1" struct my_struct { char one[5], two[5]; }; struct my_struct list[] = { {define1, define2}, } // the ? is supposed to be define1 from

我对C和编程基本上是新手,所以我不知道很多词汇,如果你不理解我的问题,很抱歉

#define define1 "\x1F\C0\x00\xF1"
#define define2 "\x3F\xD0\x01\xF1"

struct my_struct {
  char one[5], two[5];
};

struct my_struct list[] = {
    {define1, define2},
}

// the ? is supposed to be define1 from list[] but I don't know how to write it
print("%s", ?);
if (? == 3) {..}
我的问题是使用define1?当前处于打印语句和条件中

如果有人明白这一点,我会节省很多时间


谢谢。

您只需通过索引访问列表数组的一个和两个成员即可

#include<stdio.h>
#define define1 "str1"
#define define2 "str2"

struct my_struct {
  char one[5], two[5];
};

struct my_struct list[] = {
    {define1, define2},
};

int main(){
    printf("%s", list[0].one);
}
输出: str1


你需要告诉我们你到底想做什么。输入显然不起作用且不完整的代码对解释您试图实现的目标没有帮助。因为您在define1中有一个嵌入的空字符和不可打印字符,并且无论您在哪里分配它的值,您都不应该将其作为%s的格式字符串的格式说明符传递。至于你的比较,你想在那里做什么?谢谢!最后一个问题:如果我加上{define3,define4},我如何从列表中获取每一个值?我的意思是:如果3==list[],你想用什么来检查呢?如果列表中的每一个before都等于3,那么你必须为每个索引创建一个计数器变量并在循环中检查它