0

私は次のコードを持っています。なぜ次のようにユニオンポインタを参照解除するのが未定義なのですか?

extern union MyUn *P1;          
extern union MyUn *P2;

extern void myfunc(void)
{
      *P1 = *P2;                
}
4

2 に答える 2

7

このソース ファイルで共用体も定義していない場合、コンパイラはコピーする量を認識できません。

組合の規模は?

于 2012-09-01T09:40:22.953 に答える
3

これは特にユニオンとは関係がなく、「未定義」でもありません。不完全な型へのポインターを逆参照しようとすると、(明らかな理由で) 単にコンパイラ エラーになります。

于 2012-09-01T09:42:58.030 に答える