首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言 static 靜態變量何時賦值?編譯期靜態初始化驗證實驗

     編輯:關於C語言

C語言 static 靜態變量何時賦值?編譯期靜態初始化驗證實驗

結論

編譯階段 完成靜態初始化。已初始化的靜態變量放在 .data 段,未初始化的放在 .bss 段(運行時由加載器清零)。

驗證步驟

  1. 編寫測試代碼:
    static int i;
    static int j = 0x12345678;
  2. 編譯生成目標文件:gcc -c test_static.c -o test_static.o
  3. 查看符號表:objdump -t test_static.o
    • j 出現在 .data 段,值為 0x12345678。
    • i 出現在 .bss 段,無顯式值。
  4. 查看段內容:objdump -j .data -s test_static.o 可見 78 56 34 12(小端序)。

常用 objdump 選項

  • -t:符號表。
  • -h:段概覽。
  • -j <section> -s:顯示指定段十六進制內容。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved