(以下の回答は GCC 4.4 で検証済みです。)
あなたのような単純で非ポリモーフィックな型の単なる定義はC
、実行可能ファイルを大きくすることも、スタック (またはヒープ、またはその他の場所) 上のスペースも必要としません。コンパイル時にコンパイラのシンボルテーブルを一時的に拡大し、コンパイラにこれを行うように依頼した場合はデバッグシンボルを出力する可能性がありますが、これがあなたの質問の主旨ではないと思います。それ以外の場合、C
タイプの実際のオブジェクトC
がインスタンス化されるまでスペースを取りません。
C your_c;
C my_c;
一意にアドレス指定できるように、型の各オブジェクトはC
未使用の 1 バイトを占有します。
さて、完成させるために、隠れた中間の問題があります。ツールチェーンは、事前リンクされたオブジェクト ファイル (名前が ".o" または ".obj" で終わるファイル) の一部として、未使用の型のシンボルを出力する場合と出力しない場合があります。私のコンパイラはそうではありませんが(試してみました)、あなたのコンパイラはそうかもしれません。
これらすべてが技術的すぎると思われる場合、答えの公正な概算または要約は次のとおりです。コードはスペースを取りません。