关于一些代码中定义为空的宏ngx_cdecl的作用

最近在看nginx源代码的时候,在很多函数定义的地方都带有ngx_cdecl这个宏定义。如:

int ngx_cdecl
main(int argc, char *const *argv);

void ngx_cdecl
ngx_log_stderr(ngx_err_t err, const char *fmt, ...);

结果一看它有声明,仅仅只是一个定义为空的宏。

 #define ngx_cdecl

然后查询了相关资料后,觉得应该是多平台之间不同的编译器有不同的编译选项,只是为了以后其它平台有需要添加的或扩展的编译时选项而预留的。

例如在VC环境下进行回调函数的声明时,很多时候都会加上_stdcall、_cdecl、 _fastcall这三个在windows平台下指定函数调用的方式的编译选项。


所以,这种定义为空的宏的作用是预留下以后平台移植时的其它选项的定义。应该仅仅是为了移植的方便。

另外返回类型和函数名换一行是一个很好的风格,方便查找函数.

类型

函数名(参数);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值