fre*_*low 9 c constructor destructor naming-conventions
假设我有一个struct list,我想提供一个"构造函数"和一个"析构函数"函数.我该如何命名呢?
void list__init(struct list * self);
void list__construct(struct list * self);
void list__create(struct list * self);
...
void list__done(struct list * self);
void list__destruct(struct list * self);
void list__destroy(struct list * self);
...
Run Code Online (Sandbox Code Playgroud)
是否存在在现实世界中占主导地位的既定命名约定?
小智 8
没有普遍接受的公约.
当然,C++在这个问题上影响了人们的观点.
就个人而言,我在函数执行内存分配时使用new(),如果不执行则使用init(),如果发生重新分配则使用delete(),否则使用cleanup().
巧舌如簧/ GTK人使用的创建惯例_new和_free内存分配的构造函数和析构函数和_init与_destroy非内存分配构造函数和析构函数.
pthread库似乎大多遵循的惯例_init和_destroy非内存分配者和_create内存分配.
X11使用XOpenFoo和XCloseFoo.
C库本身使用的free是用于非内存分配像glob_t和的结构清理wordexp_t.
所以,我猜答案是否定的,但肯定有很多人在某些项目中选择了特定的符号.
我正在使用以下约定:
..._alloc()..._init()..._create()..._discard()..._dealloc()通过或释放内存..._free()..._destroy()