【发布时间】:2014-08-03 11:33:14
【问题描述】:
typedef int arr[10]
我了解上述语句为 int[10] 定义了一个新名称 这样
arr intArray;
等价于
int intArray[10];
但是,我对这样做的惯例感到困惑。在我看来,
typedef int arr[10]
很困惑,对我来说一个清晰的方法是
typedef int[10] arr
即我将“int[10]”定义为一种称为 arr 的新类型
但是,编译器不接受这个。
请问为什么?它只是 C 语言的约定吗?
【问题讨论】:
-
但是在定义数组时使用这个顺序很酷:
int arr[10]? :) -
阅读标准; [] 出现在指示符之后,在您的示例中为
intArray,用于声明一个数组。 -
和声明变量完全一样,只是前面贴
typedef,表示变量名变成了类型别名。 -
这只是 C 的一个约定。它有时被称为“声明模仿使用”(尝试在谷歌搜索“C 语言类型声明模仿使用”)。