如何使用#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 为类型定义别名。