end*_*ith 4 c null optional-parameters function-parameter function-declaration
在Python中,我习惯了类似的东西
def send_command(command, modifier = None):
Run Code Online (Sandbox Code Playgroud)
然后modifier参数是可选的,并且参数的缺失可以与参数0区分开来.在C中是否有类似的功能?我没有C和Googling的经验,但是找不到如何在C中使用可选参数的明确声明.看起来你可以类似地分配它们,如下所示:
void send_command(uint8_t command, uint8_t modifier = 0) {
Run Code Online (Sandbox Code Playgroud)
所以第二个参数是可选的,如果不使用则默认为0? (编辑:不,无论如何这是无效的C)
但功能可以区分send_command(SOMETHING)和send_command(SOMETHING, 0)?理想情况下,第二个参数可以是任何uint8值,包括0.
也许NULL与0不同?
void send_command(uint8_t command, uint8_t modifier = NULL) {
Run Code Online (Sandbox Code Playgroud)
可变参数在C99中可以使用可变参数宏:
#define JUST3(a, b, c, ...) (a), (b), (c)
#define FUNC(...) func(JUST3(__VA_ARGS__, 0, 0))
Run Code Online (Sandbox Code Playgroud)
现在FUNC(x)扩展到func((x), (0), (0)),FUNC(x,y)扩展到func((x), (y), (0))等等
| 归档时间: |
|
| 查看次数: |
15648 次 |
| 最近记录: |