c - 为什么使用_PROTOTYPE头文件

标签 c

为什么我们使用 _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/

相关文章:

c - 在输入期间跳过第一个 fgets() 调用?

c - 暂时在指针中前进

c - 如何使用 Msys2 和 MinGW 在 Windows 上构建 OpenLDAP 库?

arrays - 找出数字的所有数字是否相等

c - 如果要保存的 key 是 HKEY_LOCAL_MACHINE,为什么 RegSaveKey() 会失败并显示错误代码 5(访问被拒绝)?

c++ - 具有调试功能的 C/C++ IDE 的建议

C:Make Capital 功能的总线错误

c - #include ansi C 中的图像

c - “Control may reach end of non-void function”错误消息

c++ - 更改自动分配内存的范围是否会影响性能?