【发布时间】:2015-04-27 14:51:42
【问题描述】:
我看过一个程序,在头文件中声明如下
typedef char CHAR10[10];
在下面的程序中
CHAR10 szReading;
上面的声明和
一样吗char szReading[10];
我对这些很困惑。有人能解释一下它到底是什么吗?
【问题讨论】:
-
从阅读一本好的 C 书籍开始。
我看过一个程序,在头文件中声明如下
typedef char CHAR10[10];
在下面的程序中
CHAR10 szReading;
上面的声明和
一样吗char szReading[10];
我对这些很困惑。有人能解释一下它到底是什么吗?
【问题讨论】:
是的,你理解正确。有关详细信息,请参阅this answer。
当您说CHAR10 与固定长度的字符数组相同,然后说CHAR10 test,那么test 肯定是您想要长度的字符数组(在您的示例中为 10) .
typedef 用法示例
typedef unsigned int uint;
uint K; // K is an unsigned int
typedef char *SortOfString;
SortOfString test; // test is a pointer to char
【讨论】:
是的,你的解释是正确的。
【讨论】:
CHAR10 szReading[5] 对吗?
char szReading[5][10]。不过,我不确定这是否是您所说的“双数组”。恕我直言,最好不要以这种方式使用typedef 隐藏重要信息。
double arr[5]; 是一个 double 数组。