- 相關推薦
C語言程序的段
C語言在編譯和連接后,將生成代碼段(Text)、只讀數據段(ROData)和讀寫數據段(RWData)。在運行時,除了以上三個區域外,還包括未初始化數據段(BSS)區域和堆(Heap)區域和棧(Stack)區域。
1、代碼段(code或text)
代碼段由各個函數產生,函數的每一個語句將最終經過編繹和匯編生成二進制機器代碼(具體生生哪種體系結構的機器代碼由編譯器決定)。
2、只讀數據段(ROData)
只讀數據段由程序中所使用的數據產生,該部分數據的特點是在運行中不需要改變,因此編譯器會將該數據段放入只讀的部分中。C語言中的只讀全局變量,只讀局部變量,程序中使用的常量等會在編譯時被放入到只讀數據區。
注意:定義全局變量constchara[100]={"ABCDEFG"};將生成大小為100個字節的只讀數據區,并使用“ABCDEFG”初始化。如果定義為:constchara[]={"ABCDEFG"};則根據字符串長度生成8個字節的只讀數據段(還有’ 主站蜘蛛池模板: 江孜县| 射洪县| 孝义市| 北宁市| 葵青区| 紫金县| 太仓市| 会泽县| 南皮县| 霍山县| 平安县| 竹北市| 奈曼旗| 桐庐县| 烟台市| 万宁市| 广安市| 陕西省| 民勤县| 武威市| 北票市| 华安县| 安庆市| 天台县| 柳林县| 曲松县| 中江县| 平远县| 高阳县| 阿合奇县| 阿图什市| 新丰县| 平原县| 肇州县| 喀什市| 册亨县| 黔西县| 合江县| 浦江县| 昌黎县| 犍为县|