用法

1. 空宏

函数定义前添加空的宏

  1. #define ngx_cdecl
  2. int ngx_cdecl main(int argc, char const **argv);

作用

  • 跨平台编译
    预留:平台移植时指定函数调用的方式的编译选项
  • 仅做函数标识说明(类似tag)

宏函数🆚函数🆚内联函数

C 标准库 – | 菜鸟教程

offsetof

空宏
即无宏值
如#define ngx_cdecl
作用
在函数定义前添加空宏
int ngx_cdecl main(int argc, char *argv[]);

  1. 预留编译选项,方便平台移植
  2. 标识函数,类似标签
    不同平台间不同的编译器有不同的编译选项,为了以后其他平台需要添加或扩展编译选项时预留
    如:在VC环境下,进行回调函数声明时,会加上_stdcall、_cdecl、_fastcall这三个编译选项来指定Windows平台下函数调用方式

if 0/1 ··· #endif
https://www.cnblogs.com/nevel/p/6378035.html