教你怎样建立和理解非常复杂的声明

来源:本站
导读:目前正在解读《教你怎样建立和理解非常复杂的声明》的相关信息,《教你怎样建立和理解非常复杂的声明》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《教你怎样建立和理解非常复杂的声明》的详细说明。
简介:例如定义一个包含N 个指向返回指向字符的指针的函数的指针的数组。

这个问题至少有以下3 种答案:

1. char *(*(*a[N])())();

2. 用typedef 逐步完成声明:

typedef char *pc; /* 字符指针*/

typedef pc fpc(); /* 返回字符指针的函数*/

typedef fpc *pfpc; /* 上面函数的指针*/

typedef pfpc fpfpc(); /* 返回函数指针的函数*/

typedef fpfpc *pfpfpc; /* 上面函数的指针*/

pfpfpc a[N]; /* 上面指针的数组*/

3. 使用cdecl 程序, 它可以把英文翻译成C 或者把C 翻译成英文:

cdecl> declare a as array of pointer to function returning

pointer to function returning pointer to char

char *(*(*a[])())()

通过类型转换, cdecl 也可以用于解释复杂的声明, 指出参数应该进入哪一对括号(如同在上述的复杂函数定义中)。 一本好的C 语言书都会解释如何“从内到外” 解释和理解这样复杂的C 语言声明(“模拟声明使用”)。上文的例子中的函数指针声明还没有包括参数类型信息。如果参数有复杂类型, 声明就会变得真正的混乱了。现代的cdecl 版本可以提供帮助。

提醒:《教你怎样建立和理解非常复杂的声明》最后刷新时间 2024-03-14 01:00:17,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《教你怎样建立和理解非常复杂的声明》该内容的真实性请自行鉴别。