关于一些代码中定义为空的宏的作用
来源:互联网 发布:excel软件下载 编辑:程序博客网 时间:2024/06/06 00:47
/*********************************************************************
* Author : Samson
* Date : 05/03/2012
* Test platform:
* GNU Linux version 2.6.29.4
* gcc version 4.4.0 20090506 (Red Hat 4.4.0-4) (GCC)
* *******************************************************************/
最近在看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平台下指定函数调用的方式的编译选项。
所以,这种定义为空的宏的作用是预留下以后平台移植时的其它选项的定义。应该仅仅是为了移植的方便。
- 关于一些代码中定义为空的宏的作用
- 关于一些代码中定义为空的宏ngx_cdecl的作用
- C语言中使用空的宏定义的作用
- 代码编写中关于通用定义的一些个性规约
- 关于编译为ko的一些宏定义
- 宏定义中##的作用
- C# 关于判断字符串为空的一些方法
- C# 关于判断字符串为空的一些方法
- C# 关于判断字符串为空的一些方法
- C# 关于判断字符串为空的一些方法
- 代码中关于static的作用
- 判断宏被定义为数字还是空的方法
- 判断字符串是否为空的宏定义
- 宏定义中##和#的作用
- 宏定义中##和#的作用
- 宏定义中##和#的作用
- 宏定义中##和#的作用
- 宏定义中##和#的作用
- 应用初始化时mysql hold在SocketInputStream.socketRead0(Native Method)问题
- error C2440: "reinterpret_cast":无法从"NMHDR*"转换为"NMITEMACTIVATE"
- [亲情]追忆爸爸
- 类型转换
- linux中时间设置date、hwclock、clock
- 关于一些代码中定义为空的宏的作用
- 关于Hibernate的HQL查询
- IOS成长之路-使用xib界面与和代码相关联的方法
- delphi 关闭进程方法
- Career Cup 2-1
- java中日期与字符串的转换
- C#比较日期的大小、C#比较时间大小的方法
- [unix shell笔记] - awk介绍
- likey and unlikely