私は例えばのための労働組合や列挙型、持っている:CPPで組合の構造を解析する方法は?
typedef union{
Home HomeInfo;
Office OfficeInfo;
} Info;
typedef enum{
eHOME,
eOFFICE
} InfoType;
Home
とOffice
は、他の構造体です。
私はInfoType
がeHOME
であれば、私は情報、Info info;
のオブジェクトを作成し、HomeInfo
詳細info.HomeInfo
を埋めると呼んで、そのプロトタイプ関数呼び出しの際
void SetInfo(InfoType, Info);
ある別の機能を持っている
SetInfo(eHONE, info);
SetInfo定義:
SetInfo(InfoType infotype, Info info)
{
if (eHOME == infotype)
{
// get the details from info.HomeInfo structure
}
else if(eOFFICE == infotype)
{
// get the details from info.OffiiceInfo structure
}
}
eHOME
をInfoType
とし、詳細をOfficeInfo
として渡すと、無効な場合がありますか?現時点ではHomeInfo
の詳細を取得していましたが、そこにはジャンク値があるため、エラーは発生しません。 InfoType
チェック後の構造を確認することは可能ですか?
私は約3回あなたの質問を読んで、私はまだそれを理解することはできません...あなたは問題を強調するいくつかの入力のための期待される出力を持つ自己完結型の簡単な例を作成できますか? – Nim
CまたはC++を使用していますか? –