C語言程式的段

C語言在編譯和連線後,將生成程式碼段(Text)、只讀資料段(ROData)和讀寫資料段(RWData)。在執行時,除了以上三個區域外,還包括未初始化資料段(BSS)區域和堆(Heap)區域和棧(Stack)區域。

C語言程式的段

  1、程式碼段(code或text)

程式碼段由各個函式產生,函式的每一個語句將最終經過編繹和彙編生成二進位制機器程式碼(具體生生哪種體系結構的機器程式碼由編譯器決定)。

  2、只讀資料段(ROData)

只讀資料段由程式中所使用的資料產生,該部分數據的'特點是在執行中不需要改變,因此編譯器會將該資料段放入只讀的部分中。C語言中的只讀全域性變數,只讀區域性變數,程式中使用的常量等會在編譯時被放入到只讀資料區。

注意:定義全域性變數constchara[100]={"ABCDEFG"};將生成大小為100個位元組的只讀資料區,並使用“ABCDEFG”初始化。如果定義為:constchara[]={"ABCDEFG"};則根據字串長度生成8個位元組的只讀資料段(還有’