typedef char *pc; /* 字符指针 */ typedef pc fpc(); /* 返回字符指针的函数 */ typedef fpc *pfpc; /* 上面函数的指针 */ typedef pfpc fpfpc(); /* 返回函数指针的函数 */ typedef fpfpc *pfpfpc; /* 上面函数的指针 */ pfpfpc a[N]; /* 上面指针的数组 */
cdecl> declare a as array of pointer to function returning pointer to function returning pointer to char char *(*(*a[])())()通过类型转换, cdecl 也可以用于解释复杂的声明, 指出参数应该进入哪一对括号 (如同在上述的复杂函数定义中)。参见问题 18.1。
上文的例子中的函数指针声明还没有包括参数类型信息。如果参数有复杂类型, 声明就会变得真正的混乱了。现代的 cdecl 版本可以提供帮助。
参考资料: [K&R2, Sec. 5.12 p. 122]; [ISO, Sec. 6.5ff (esp. Sec. 6.5.4)]; [H&S, Sec. 4.5 pp. 85-92, Sec. 5.10.1 pp. 149-50]。
翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)