gpt4 book ai didi

c - 这个宏在函数声明中的作用是什么?

转载 作者:太空狗 更新时间:2023-10-29 15:23:28 26 4
gpt4 key购买 nike

我已经下载了一些库,它按以下方式声明函数:

#if !defined(__ANSI_PROTO)
#if defined(_WIN32) || defined(__STDC__) || defined(__cplusplus)
# define __ANSI_PROTO(x) x
#else
# define __ANSI_PROTO(x) ()
#endif
#endif

int httpdAddVariable __ANSI_PROTO((httpd*,char*, char*));

这里__ANSI_PROTO的作用是什么?为什么更喜欢简单地声明为

int httpdAddVariable (httpd*,char*, char*);

最佳答案

ANSI C 之前的版本不支持这个:

int httpdAddVariable (httpd*,char*, char*);

它只支持这个:

int httpdAddVariable (); /* = arguments unspecified*/

这就是宏的作用。如果检测到原型(prototype)支持,它会将参数类型粘贴到声明中;否则,它只是粘贴 ()

关于c - 这个宏在函数声明中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41447402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com