gpt4 book ai didi

c - C中的函数命名 : parentheses in function names

转载 作者:太空狗 更新时间:2023-10-29 15:55:01 25 4
gpt4 key购买 nike

当我看到名称中带有括号的函数时,我正在阅读源代码:

extern int LIB_(strcmp) ( const char* s1, const char* s2 );
extern char LIB_(tolower) ( char c );

那是什么?

我很困惑,因为我可以这样调用函数:char c = LIB_(tolower)('A');

在C语言中,括号不是用来分隔函数名和参数并进行类型转换的吗?

最佳答案

这确实令人困惑。 LIB_(x) 是一个在某处定义的,它的计算结果为函数的真实名称。

所以函数名实际上不是 LIB_(strcmp) 而是 LIB_(x) 宏的结果。最有可能的是,LIB_(x) 旨在将库名称/标识符添加到函数的开头,其定义如下:

/* prepend libname_ onto the name of the function (x) */
#define LIB_(x) libname_ ## x

关于c - C中的函数命名 : parentheses in function names,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21994958/

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