簡體   English   中英

C宏寫一個堆棧可變長度的結構嗎?

[英]C Macro to write a stack variable length struct?

我不知道這是否可行,但我想編寫一個在堆棧上聲明可變長度結構的宏。 我想做這樣的事情:

#define STATICLIST(max)       struct SStaticList { int iSize; id iObjects[max]; }

並這樣調用:

STATICLIST(32) Size32List
STATICLIST(64) Size64List

但是我正在重新聲明類型struct SStaticList錯誤

您可以執行類似的操作,但為了避免使用具有相同名稱沖突的結構,您將需要執行某些操作。

#define STATICLIST(max) struct { int iSize; id iObjects[max]; }

這應該做。

您可以使用令牌粘貼操作##在結構名稱中包括大小:

#define STATICLIST(max)       struct SStaticList##max { int iSize; int iObjects[max]; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM