我在头文件AC结构: -C结构到结构的任务 - 在目标结构不正确的值
typedef struct sample
{
char *member1;
char **member2;
long *member3;
unsigned int member4;
} example;
我已经宣布在同一头文件中的默认类型定义变量: -
const example defaultValue;
默认值的定义在C文件: -
const example defaultValue =
{
NULL,
NULL,
NULL,
99
};
现在在不同的C文件,如果我这样做,
example example1 = defaultValue;
所有成员被分配NULL预期 - 但“无符号整型member4”分配的0而不是99.这是很奇怪的,因为defaultValue.member4为99。可有人请解释这种异常行为的价值?有没有更好的方法来做一个默认的结构初始化?
您发布的代码甚至无法编译。你也可能错过了其他的东西。 – detunized 2011-01-23 22:10:30
确保第二个const在其他文件中正确引用。如果不是的话,你最终会得到(有可能)example1,结果被零填充。 – payne 2011-01-23 22:10:42
请编辑您的帖子以从实际源文件中直接复制代码。正如几个人所观察到的,您发布的代码无法编译 - 更不用说给出您报告的行为。所以帮助你是不可能的,因为我们必须猜测代码的外观。 – 2011-01-23 22:16:49