トップ回答者
『static __declspec(thread)』のOBJのサイズについて

質問
-
Microsoft Visual C++ 6.0を使用しています
#include "stdafx.h" extern void main (void); static __declspec(thread) char thr_buf[4096]; //① //static char thr_buf[4096]; //② ・ ・ ・ void main() { }
上記のようなコードをコンパイルしてできた、OBJファイル(最終的にはEXEやDLL)のサイズが非常に大きくなってしまいます
(『thr_buf[nnnn]』のサイズ分大きくなっているように感じます)
『__declspec(thread)』 をはずし、②のようにコーディングするとファイルサイズが小さく(普通)なりました。
コンパイルは、コマンドプロンプトより、行っています。(オプションは下記の通り)
SET CL= /D_MBCS /DNDEBUG /DWIN32 /D_WINDOWS /D_AFXDLL /Ih:\jp\include /Ix:\res
cl /Yustdafx.h /Fph:\jp\objw\stdafx.pch /Fox:\obj\ /c /MD /Zp1 /GX /O2 /W4 /J /Tp x:\apw\%1.cpp > x:\apw\%1.err
プログラムを起動した時のメモリ使用量が増減するのは当たり前としても、『__declspec(thread)』を使用してもモジュールのサイズを小さくしたいと思っています。
なぜ『__declspec(thread)』で記述すると、実行モジュールのファイルサイズが大きくなってしまうのか?また、小さくする方法を教えてください。
よろしくお願いいたします。