awal[3] tidak dimasukkan ke data segment, karena awal[3] tidak di-initialize.
Non-initialized variable diletakkan di BSS, tergantung O/S-nya, BSS
bisa di-initialize
dengan 0, atau untuk debugging mode, bisa dengan any value (eg. 0xCCCCCCCC di
visual C++).

Stack-segment hanya digunakan untuk thread/function, bukan untuk
global variable.
Biasanya compiler tidak akan optimize global variable, karena compiler
hanya compile
satu file saja. Si compiler tidak tahu siapa saja yang refer ke variable ini.
Mungkin saja, ada file .C lainnya yang mengakses global variable ini,
dan di-link bersamaan.


KOkon.

On 5/4/06, Danny Kurniawan <[EMAIL PROTECTED]> wrote:
Kemungkinan penjelasan mas Eko benar... tapi saya menduga tidak diletakkannya
awal[3] pada Data Segment, disebabkan karena adanya optimasi dari compiler
yang mungkin diletakkan pada Stack Segment karena sifatnya hanya sementara,
yaitu hanya digunakan dalam function main()...

Coba compile tanpa optimasi: gcc -Wall -O0 -o str1 str1.c
dan lihat apakah hasilnya seperti yang diharapkan: ABCDE ???

--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis

Kirim email ke