例をコンパイル (gcc 4.6.3、ubuntu) すると、次の警告メッセージが表示されます。
struct {
} a;
int main()
{
}
warning: anonymous type with no linkage used to declare variable ‘<anonymous struct> a’ with linkage [enabled by default].
GCC はこの警告を出しません。G++ のみが行います。
staticを追加すると、警告がクリアされます。
static struct {
} a;
私はそれが何を意味するのか理解できませんでしtype
たlinkage
。リンケージは、変数がどこでどのように宣言されているかに依存すると思いましたが、変数自体の型には依存しませんでした。