C API设计问题-函数名和语义
我正在重新设计一个简单的C API接口来控制一个硬件 我有几个问题都与API有关。我不确定我是应该将他们全部分组在这个问题中还是提交多个问题。现在我将在这里列出它们 为了便于参考,API的结构如下所示C API设计问题-函数名和语义,c,api,C,Api,我正在重新设计一个简单的C API接口来控制一个硬件 我有几个问题都与API有关。我不确定我是应该将他们全部分组在这个问题中还是提交多个问题。现在我将在这里列出它们 为了便于参考,API的结构如下所示 LIB_ERR_CODE myfunction1(int param1); 我的问题是: 是否更适合使用启用和禁用功能,或者使用带有bool参数的单个启用功能 LIB_ERR_CODE EnableOscillator(int device); LIB_ERR_CODE DisableOscil
LIB_ERR_CODE myfunction1(int param1);
我的问题是:
LIB_ERR_CODE EnableOscillator(int device);
LIB_ERR_CODE DisableOscillator(int device);
vs
LIB_ERR_CODE SetTemperature(int value); // set temperature
LIB_ERR_CODE GetTemperature(int *pvalue); // returns actual temperature
例2:
LIB_ERR_CODE ProgramHumidity(int value); // set humidity
LIB_ERR_CODE ReadHumidity(int *pvalue); // returns actual humidity
例3:
LIB_ERR_CODE WriteConfiguration(int value); // write values to a config register
LIB_ERR_CODE ReadConfiguration(int *pvalue); // reads values from the config register
LIB_ERR_CODE CurrentConfiguration(int *pvalue); // Current configuration values
LIB_ERR_CODE ProgramOscillator(int freq, int amp);
你会注意到接近票数的人:“主要基于意见”。有些语言有一些接近通用风格指南的东西——例如,大多数Java团队至少坚持资本化标准。有了C,就没有这回事了。您可以采用特定项目的样式指南(可能是GNU),但没有一种真正的方法。参考2:Setter和getter通常被命名为
Set*()
/Get*()
。我个人更喜欢另一种方式,即*Set()
/*Get()
,因为这样排序更精确…:-)关于第一个问题:自从痛苦的EnableWindow()
()大约25年前发明以来,不幸的是后者更为常见。对于第三个问题,我将提供所有三个,在前两个的基础上实现最后一个as包装器。无论如何,按照您认为最好的方式做,把所有内容都记录好。
LIB_ERR_CODE ProgramFrequency(int freq);
LIB_ERR_CODE ProgramAmplitude(int amp);
LIB_ERR_CODE ProgramOscillator(int freq, int amp);