c - 如何在C中合并结构体字段

标签 c struct merge

我很好奇是否有一种方法可以合并两个结构字段而不必显式检查每个字段?

typedef struct NSPoint {
    int x;
    int y;
    int z;
} NSPoint;

NSPoint point1 = { .x = 5, .y = 4, .z = 3};

// Somewhere down the code

NSPoint point2 = { .x = 10 };

// Merge so it ends with: 
// { .x = 10, .y = 4, z = 3};

NSPoint point3 = point1 + point2;

最佳答案

不,这是不可能的。

一旦你意识到这一点:

NSPoint point2 = { .x = 10 };

在语义上与此相同:

NSPoint point2 = { .x = 10, .y = 0, .z = 0 };

你就会明白为什么。

关于c - 如何在C中合并结构体字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35641511/

相关文章:

c - 理解 ungetc 在简单 getword 中的使用

c++ - 为什么结构体的 sizeof 不等于每个成员的 sizeof 之和?

c++ - 使用 extern const 将结构传递给模板。什么是外部?

pandas.concat 忘记列名

c - C 中不兼容的指针类型

c - 并行程序中的 GCC 段错误

c - 无论输入什么,答案都是 67,为什么?

c++ - Arduino相当于VB WITH

python - 合并多个文件并通过附加文件名保存它们

arrays - 如何在 MATLAB 中合并结构体/结构体数组?