【发布时间】:2014-03-30 11:35:33
【问题描述】:
在 C++ 参考页面中,他们提供了一些 typedef 示例,我试图理解它们的含义。
// simple typedef
typedef unsigned long mylong;
// more complicated typedef
typedef int int_t, *intp_t, (&fp)(int, mylong), arr_t[10];
所以我理解的简单 typedef(第一个声明)。
但是他们用第二个(下面重复)声明了什么?
typedef int int_t, *intp_t, (&fp)(int, ulong), arr_t[10];
特别是(&fp)(int, mylong) 是什么意思?
【问题讨论】:
-
应该指出,像这样编写单行 typedef goo 是非常糟糕的编程习惯,因为它很难阅读,而且没有任何优势。因此,如果您正在阅读本文并且从未见过这样的 typedef,请不要开始使用这种语法。
-
@Lundin 我不同意。将它们全部放在一行中可以清楚地表明您打算让它们都引用相同的基本类型。根据定义。
-
@MrLister 如果你把它们一个接一个地写在一个单独的行,每行都以
typedef some_type ...开头,你有几行这样的,你的意图很清楚,没有语法的空间滑倒。更具可读性。 -
@Lundin 这可能是个人喜好问题,所以我不确定我们是否需要就此进行讨论。