给定:
struct objStruct {
int id;
int value;
};
typedef struct objStruct Object;
是否有分配和初始化对象的快捷方式,类似于 C++ 构造函数?
它甚至可以是预处理器宏。任何使代码更短且更易读的东西:
Object *newObj = malloc(sizeof(Object));
// successful allocation test snipped
newObj->id = id++;
newObj->value = myValue;
最佳答案
在 C 语言中,我通常会创建一个具有构造函数风格的函数来执行此操作。例如(为简洁起见省略了错误检查)
Object* Object_new(int id, int value) {
Object* p = malloc(sizeof(Object));
p->id = id;
p->value = value;
return p;
}
...
Object* p1 = Object_new(id++, myValue);
关于C中结构的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3774193/