Почему сегмент BSS по умолчанию равен 16?
Насколько мне известно, сегментация для программы c:
High address
|---------------------------|
|env/cmd line args vars |
|---------------------------|
| stack segment |--> uninitialized auto vars
|---------------------------|
|---------------------------|
|---------------------------|
| heap segment |--> dynamic allocated memory
|---------------------------|
| BSS segment |--> uninitialized static/global vars
|---------------------------|
| data segment |--> initialized static/global vars
|---------------------------|
| text segment |--> initialized auto vars/exec instructions
|---------------------------|
Low address
На моей RHEL 5.4 64-битной машине, для ниже c программы
#include <stdio.h>
int main()
{
}
когда я делаю:
# size a.out
text data bss dec hex filename
1259 540 16 1815 717 a.out
Я не могу понять, почему
ПБС = 16
Как я не объявляю / инициализирую какие-либо глобальные / статические переменные?