[英]typedef of nested structs
我正在嘗試使用以下命令對一組嵌套結構進行typedef:
struct _A
{
struct _Sim
{
struct _In
{
STDSTRING UserName;
VARIANT Expression;
int Period;
bool AutoRun;
//bool bAutoSave;
} In;
struct _Out
{
int Return;
} Out;
} Sim;
} A;
typedef _A._Sim._In SIM_IN;
事情是VS2010中的編輯器喜歡它。 它可以識別typedef中的元素,我可以將其包含為函數的參數,但是當您構建它時,我會首先收到警告C4091(在未聲明任何變量的情況下忽略在左邊),然后導致錯誤C2143“缺少';'” 在“。”之前。
typedef的想法是使用一個名稱就可以輕松地管理_A._Sim._類型的類型定義(在指針,原型等中)……如果編譯器允許的話,這似乎是typedef的完美用法。
與使用整個嵌套名稱(_A._Sim._In)相比,如何使用一個名稱引用嵌套結構以使指針管理和類型指定更容易?
這樣做可能不是更可取,但是,如果使用typedef無法實現,我想您總是可以
#define _A._Sim._In SIM_IN
但是正如我所說,出於各種原因,您可能不喜歡這樣做。 :)
點運算符是應用於對象 (用C表示)的后綴運算符。 即,您不能將其應用於類型。
要達到您想要的目標,可以使用函數或宏,例如:
#define SIM_IN(x) x._Sim._In
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.