如何使用#define 指令定义复杂类型?
How to define a complex type with the #define directive?
我正在学习构建复杂类型。这里我定义了一个指向 shorst 数组 5 的指针,使用 typedef
:
typedef short (*mytype)[5];
我正在尝试找出如何与 #define
指令相同,以及它是否可行。我试过这个,但它不起作用:
#define MYTYPE (short*)[5]
这个指令似乎不能用于定义比指针或结构更复杂的东西。那么,这里有什么意义呢?
How to define a [variable of a pointer to array type] with the #define directive?
您可以只使用函数宏。
#define MYTYPE(name) short (*name)[5]
int main() {
short arr[5];
MYTYPE(a) = &arr;
typedef MYTYPE(mytype);
}
what is the point here?
没有意义 - 预处理器是一种通常不了解 C 语法的字符串替换工具。使用 typedef
为类型定义别名。
我正在学习构建复杂类型。这里我定义了一个指向 shorst 数组 5 的指针,使用 typedef
:
typedef short (*mytype)[5];
我正在尝试找出如何与 #define
指令相同,以及它是否可行。我试过这个,但它不起作用:
#define MYTYPE (short*)[5]
这个指令似乎不能用于定义比指针或结构更复杂的东西。那么,这里有什么意义呢?
How to define a [variable of a pointer to array type] with the #define directive?
您可以只使用函数宏。
#define MYTYPE(name) short (*name)[5]
int main() {
short arr[5];
MYTYPE(a) = &arr;
typedef MYTYPE(mytype);
}
what is the point here?
没有意义 - 预处理器是一种通常不了解 C 语法的字符串替换工具。使用 typedef
为类型定义别名。