.bss

.bssまたはbssとは、静的にアロケートされた変数のうちプログラムの開始時に0で初期化されているものを含むデータセグメント内の1つのメモリ領域に付けられた名前である。Unix系や Windows を含め、多くのコンパイラやリンカがこの名前を使う。bssセクションあるいはbssセグメントと呼ばれることも多い。 C言語では、初期化式なしで静的にアロケートされた変数は0(数値型の場合)かNULLポインタ(ポインタ型の場合)に初期化される。数値の0とNULLポインタは一般的なコンパイラではすべてのビットが0のビットパターンで表現される。bssセクションは初期化式を持たないグローバル変数とstaticキーワードのついた初期化されていないローカル変数を含む。0からなるビットパターンで初期化される変数をbssセクションに割り当ててもよい。 通常、bssセクションに割り当てられたメモリはプログラムローダーがプログラムをロードするときに初期化する。main が実行されるより前にCランタイムシステムがbssセクションにマップされたメモリ領域をゼロで初期化する。ただし、必要時まで0で初期化するのを遅延するというテクニックを使ってOSがbssセクションを効率的に実装してもよい。

.bss

.bssまたはbssとは、静的にアロケートされた変数のうちプログラムの開始時に0で初期化されているものを含むデータセグメント内の1つのメモリ領域に付けられた名前である。Unix系や Windows を含め、多くのコンパイラやリンカがこの名前を使う。bssセクションあるいはbssセグメントと呼ばれることも多い。 C言語では、初期化式なしで静的にアロケートされた変数は0(数値型の場合)かNULLポインタ(ポインタ型の場合)に初期化される。数値の0とNULLポインタは一般的なコンパイラではすべてのビットが0のビットパターンで表現される。bssセクションは初期化式を持たないグローバル変数とstaticキーワードのついた初期化されていないローカル変数を含む。0からなるビットパターンで初期化される変数をbssセクションに割り当ててもよい。 通常、bssセクションに割り当てられたメモリはプログラムローダーがプログラムをロードするときに初期化する。main が実行されるより前にCランタイムシステムがbssセクションにマップされたメモリ領域をゼロで初期化する。ただし、必要時まで0で初期化するのを遅延するというテクニックを使ってOSがbssセクションを効率的に実装してもよい。