我正在编写我的第一个C语言库,但不确定该如何进行。例如,从某个数据存储中检索字符串值的函数可以如下所示:
int get_value(void * store, char ** result);
或者
char * get_value(void * store, int * error);
我很难找到一个客观的理由来偏爱其中之一,但是我不经常写C语言。当多个输出参数存在时,返回错误代码看起来更加一致,但是返回值可能更容易使用?不确定。
是否有关于哪种风格更好的普遍共识以及为什么,还是只是个人喜好?
int get_value(void * store, char * result, int max_len);
这样调用者就可以分配内存,而内存所有权不会来回转移。 - mnistic