rb c语言,C语言,RB和RBT什么区别啊???这里的typedef 什么作用???
滿意答案
guiyalm4704
2017.01.10
采納率:58%????等級:12
已幫助:5026人
1) #define是預(yù)處理指令,在編譯預(yù)處理時進(jìn)行簡單的替換,不作正確性檢查,不關(guān)含義是否正確照樣帶入,只有在編譯已被展開的源程序時才會發(fā)現(xiàn)可能的錯誤并報錯。例如: #define PI 3.1415926 程序中的:area=PI*r*r 會替換為3.1415926*r*r 如果你把#define語句中的數(shù)字9 寫成字母g 預(yù)處理也照樣帶入。 2)typedef是在編譯時處理的。它在自己的作用域內(nèi)給一個已經(jīng)存在的類型一個別名,但是You cannot use the typedef specifier inside a function definition。 3)typedef int * int_ptr; 與 #define int_ptr int * 作用都是用int_ptr代表 int * ,但是二者不同,正如前面所說 ,#define在預(yù)處理 時進(jìn)行簡單的替換,而typedef不是簡單替換 ,而是采用如同定義變量的方法那樣來聲明一種類型。也就是說; //refer to (xzgyb(老達(dá)摩)) #define int_ptr int * int_ptr a, b; //相當(dāng)于int * a, b; 只是簡單的宏替換 typedef int* int_ptr; int_ptr a, b; //a, b 都為指向int的指針,typedef為int* 引入了一個新的助記符 這也說明了為什么下面觀點成立 //QunKangLi(維護(hù)成本與程序員的創(chuàng)造力的平方成正比) typedef int * pint ; #define PINT int * 那么: const pint p ;//p不可更改,但p指向的內(nèi)容可更改 const PINT p ;//p可更改,但是p指向的內(nèi)容不可更改。 pint是一種指針類型 const pint p 就是把指針給鎖住了 p不可更改 而const PINT p 是const int * p 鎖的是指針p所指的對象。 3)也許您已經(jīng)注意到#define 不是語句 不要在行末加分號,否則 會連分號一塊置換。
00分享舉報
總結(jié)
以上是生活随笔為你收集整理的rb c语言,C语言,RB和RBT什么区别啊???这里的typedef 什么作用???的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个qq个性网情侣网名
- 下一篇: 联通上班的朋友求帮帮忙!!!联通,看到请