规则是什么? OTOH 简单的案例似乎暗示新类型是一行的最后一件事。像这里 Uchar
是新类型:
typedef unsigned char Uchar;
但是函数指针完全不同。这里的新类型是 pFunc
:
typedef int (*pFunc)(int);
我想不出任何其他的例子,但我遇到了一些非常令人困惑的用法。
那么是否有规则,或者人们只是应该从经验中知道这是如何完成的,因为他们以前见过这样做?
另外:typedef
的范围是什么?
最佳答案
基本上,typedef
与对象声明的语法完全相同,只是它以 typedef
为前缀。这样做会改变声明的含义,以便新标识符声明对象类型的别名,如果它是一个正常的声明,则该对象将拥有。
typedef
的范围与对象声明的范围完全相同,因此它可以是文件范围或 block 的本地,或(在 C++ 中)命名空间或类。
例如
声明一个int
:
int a;
声明一个类型是 int
的别名:
typedef int a_type;
声明一个指向 char
的指针:
char *p;
声明 char *
的别名:
typedef char *pChar;
声明一个函数指针:
int (*pFn)(int);
为类型声明一个别名,该类型是“指向采用 int
并返回 int
的函数的指针”:
typedef int (*pFunc)(int);
关于c++ - 请解释 "typedef"的语法规则和范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2427739/