【发布时间】:2026-01-14 23:00:02
【问题描述】:
如何检查我的结构在 C99 中是否有成员 something?
#include <stdlib.h>
#include <string.h>
struct some {
char title[50];
char name[50];
};
int main() {
struct some s;
if (*s.something) { // Error: no member named 'something' in 'struct.some'
strcpy(s.something, "Hello");
}
}
更新:
我不需要知道它是否在编译时存在,而是在构建的程序中。成员及其值将从文件中解析,然后循环消耗到结构中,但我需要确保它会跳过所有不存在的成员。
【问题讨论】:
-
这不会编译,所以这就是你会知道的。如果您想实现可以在运行时添加或删除成员的结构,这是一个更复杂的主题。
-
@DanielKamilKozar 不,我不需要可以添加或删除成员的结构。我只需要检查一个成员是否存在,如果存在就给它一个值。