C宏写一个堆栈变量长度结构?

Cod*_*kes 0 c variables macros declaration list

我不知道这是否可行,但我想编写一个在堆栈上声明可变长度结构的宏.我想做这样的事情:

#define STATICLIST(max)       struct SStaticList { int iSize; id iObjects[max]; }
Run Code Online (Sandbox Code Playgroud)

并称之为:

STATICLIST(32) Size32List
STATICLIST(64) Size64List
Run Code Online (Sandbox Code Playgroud)

但我正在重新声明类型struct SStaticList错误

peo*_*oro 9

你可以这样做,但你需要一些东西,以避免具有相同冲突名称的结构.

#define STATICLIST(max) struct { int iSize; id iObjects[max]; }
Run Code Online (Sandbox Code Playgroud)

这应该做到这一点.