为什么我们使用 _PROTOTYPE 例如_PROTOTYPE( void *memset, (void *_s, int _c, size_t _n) 我在MINIX3 source code里面看到了
最佳答案
因为正如标题 block 所说,他们不知道是否要使用 ANSI 编译器或 K&R,而这个宏允许他们将参数保留在 ANSI 构建中,并在 K&R 构建中丢弃它们。
00033 /* Keep everything for ANSI prototypes. */
00034 #define _PROTOTYPE(function, params) function params
诗歌
00045 /* Throw away the parameters for K&R prototypes. */
00046 #define _PROTOTYPE(function, params) function()
这意味着
00483 _PROTOTYPE( void _exit, (int _status) );
成为 ANSI 标准:
void _exit(int _status);
在 K&R 下:
void _exit();
关于c - 为什么使用_PROTOTYPE头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2607853/