gpt4 book ai didi

c - 如何在原型(prototype)中调用带有 __P 的函数?

转载 作者:太空宇宙 更新时间:2023-11-04 01:21:52 24 4
gpt4 key购买 nike

我浏览了一些头文件,发现有很多这样的函数原型(prototype):

returntype some_name __P(arguments);

如果我要调用这个函数,我该怎么做?我是否使用类似的东西

some_name(arguments);

不包括 __P,或者是否有其他方式调用此类函数?

最佳答案

这种原型(prototype)使用宏 __P 允许在不支持 C90 原型(prototype)(又名 ansi 原型(prototype))的非常旧的系统上包含和编译。

在大多数系统上,__P 宏的参数扩展为参数列表,如下所示:

#ifdef __USING_STONE_AGE_COMPILER__
#define __P(args) ()
#else
#define __P(args) args

int some_name __P((int argc, char *argv[]));

在过时的系统上,上述声明扩展为 int some_name(); 而它扩展为完整的原型(prototype)否则:int some_name(int argc, char *argv[]);

只需忽略 __P 宏并使用 some_name(arguments); 语法来调用该函数。另请注意,宏名称 __P 并不重要,包的作者可以为此目的使用任何名称。

关于c - 如何在原型(prototype)中调用带有 __P 的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40534092/

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