这个语法在C语言中是什么意思?

问题描述 投票:0回答:2

我只是尝试阅读一些C语言的源代码。 我在

<ctype.h>
文件中遇到了一些奇怪的语法。

有人可以解释语法或给我一些关于它的含义的参考吗?

extern const unsigned short int **__ctype_b_loc (void)
     __THROW __attribute__ ((__const__));

我知道它应该是一个全局变量的一些定义,但是语法分为两行,并且在变量定义之后(

__ctype_b_loc
之后)还有很多额外的东西

c syntax
2个回答
1
投票

这是函数声明,

extern
指定这个函数的定义在另一个源文件或库中提供,函数名为
__ctype_b_loc
,它不带参数
(void)
并返回一个指向数组指针的指针
unsigned short int
的,
const
意味着它返回的数据不能被修改所以我猜这个声明被C库实现内部使用。


0
投票

这个声明只是一个带有额外不可移植属性的函数原型:

extern const unsigned short int **__ctype_b_loc(void);

__THROW
标识符可能意味着该函数在 C++ 上下文中使用时可以抛出异常。

__attribute__((__const__))
表示该函数是,即:返回值仅取决于参数,因此在程序运行期间将保持不变。

此函数用作

<ctype.h>
系统实现的一部分,它可能返回一个指向内部数据的指针,用作
unsigned int
标志的数组或由
isxxx(c)
toxxx(c)
宏使用的数组,此标头中定义.

© www.soinside.com 2019 - 2024. All rights reserved.