gpt4 book ai didi

c - 函数指针声明 - __P 的作用是什么?

转载 作者:行者123 更新时间:2023-11-30 16:29:52 25 4
gpt4 key购买 nike

函数指针定义的通常形式是:

 int function(int, int);
int (*ptr)(int, int);

但是我今天看到了一个我不明白的表格。谁能解释一下吗?

int (*close)    __P((struct __db *));

最佳答案

__P() 宏通常用于支持 K&R C 时代的 C 实现,当时还没有原型(prototype)(通过 C89 引入到 C)。基本上逻辑是

#if SOME_LOGIC_TO_TEST_WHETHER_IMPLEMENTATION_SUPPORTS_PROTOTYPES
# define __P(argument_list) argument_list
#else
# define __P(argument_list) ()
#endif

您能看出将其应用于您的示例时是如何工作的吗?请注意,为了使其正常工作并且不会导致语法错误,参数列表必须包含函数调用的括号,而不仅仅是函数调用的括号>类似函数的宏。因此,使用宏时需要使用双括号。这可能就是它看起来不寻常的原因。

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

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