这是示例代码
typedef int INT, *INTPTR, ONEDARR[10], TWODARR[10][10];
以上代码是什么意思?
INT
是int
的别名。其余的代码是怎么回事?
答案 0 :(得分:8)
问题中的单行typedef
是快捷方式
typedef int INT;
typedef int *INTPTR;
typedef int ONEDARR[10];
typedef int TWODARR[10][10];
然后INT
是类型int
的别名。
INTPTR
是int *
类型的别名。
ONEDARR
是int [10]
类型的别名。
TWODARR
是类型int [10][10]
的别名。
答案 1 :(得分:0)
考虑以下声明
int INT, *INTPTR, ONEDARR[10], TWODARR[10][10];
它使用类型说明符int
声明了四个变量:
scalar variable INT
pointer *INTPTR
one-dimensional array ONEDARR[10]
and two-dimensional array TWODARR[10][10]
然后使用typedef
typedef int INT, *INTPTR, ONEDARR[10], TWODARR[10][10];
然后,变量名称不是对象,而是具有变量的类型的别名(如果声明时没有typedef的话)。
所以INT
表示类型int
,INTPTR
表示类型int *
,ONEDARR
表示类型int[10]
,而{{1 }}表示类型TWODARR
。
所以现在您可以选择是否以以下方式声明数组
int[10][10]
或使用别名为数组类型指定其类型
int a'10][10];
再考虑一个例子。
假设您有一个函数声明
TWODARR a;
其类型为int f( int x, int y );
。现在,您要将此类型命名为使用较短的记录而不是较长的记录int( int, int )
。然后,您可以使用像
int( int, int )
因此,名称typedef int FUNC( int x, int y );
现在表示类型FUNC
。