1樓:褒妍晨樂暢
在c語言中,bai巨集定義的常量就是du通過如zhi下格式來定義的乙個dao不帶引數的常量:
#define
識別符號版
字串權
舉例說明如下:
#include
#define pi 3.14 // 巨集定義常量,即pi=3.14
void main()
2樓:支玉樹童昂
巨集定義bai不佔記憶體空間,因為巨集du
在預處理zhi階段就會被替換掉,到了dao編譯的回階段是沒有巨集存在答的,它自然到不了可執行檔案中,所以它不佔記憶體空間。
字面常量,佔不佔空間要看情況,我不知道c語言標準中是否對此事作出規定,我就談談gcc的處理方法吧,這個設計彙編的問題。
int a;
a = 5; 將這段反彙編,得到
可以看到,5是以立即數的形式出現的,所以它不佔記憶體。
然後再將a定義為float:
float a;
a = 5.0;
可以看到,程式的最後定義了5.0的單精度浮點表示,然後將其傳入eax暫存器,再賦值給a。
另外,字元常量不佔記憶體空間,字串常量佔記憶體空間。總之,整形常量是不佔空間的,其他佔。
C語言中的常量是怎麼使用的,是不是通過巨集定義常量啊
對的!專家的推薦是這樣的 1,對於數值和字元常量,用 define,注意新增必要注釋 版2,對於其它權 型別常量,用 const 限定符。const 和 define 的區別在於1 const 像變數一樣有範圍 作用域 可見性等限制,一般來說好一點 2 define常常出現意料之外的事情,因為他是靠...
c語言中巨集跟常變數的定義有什麼區別
c當中是沒有常變數的,也就是定義的變數賦值了常數但是仍然可以改變值 c 裡邊才有常變數,定義同時初始化,以後就不能改變值了。c中的巨集定義就是一種替換,上的複製替換,可以這樣理解,define a 12345就是凡是a出現的地方都用12345替換,當然巨集替換就不止數值,還可以到字串 函式表示式上去...
c語言中什麼叫實型資料,C語言中什麼叫實型資料
實型資料分兩類 單精度和雙精度float和double在記憶體中占用的位元組 float占用4個字版 節,double占用8個位元組。整型的變數是沒有小數權點的,實型是有小數點的整型你可以理解為整數,5 5就是整型常量。不是實型包含整型,實型和整型是不同的型別,它們在記憶體中的儲存方式是不。c語言中...