1樓:小魚
你要問word吧,是系攜畝返統定義的耐培,相當於辯飢unsigned short。
這些定義都在中,類似的有:
typedef unsigned long dword;
typedef int bool;
typedef unsigned char byte;
typedef unsigned short word;
typedef float float;
typedef float *pfloat;
typedef bool near *pbool;
typedef bool far *lpbool;
typedef byte near *pbyte;
typedef byte far *lpbyte;
typedef int near *pint;
typedef int far *lpint;
typedef word near *pword;
typedef word far *lpword;
typedef long far *lplong;
typedef dword near *pdword;
typedef dword far *lpdword;
typedef void far *lpvoid;
typedef const void far *lpcvoid;
typedef int int;
typedef unsigned int uint;
typedef unsigned int *puint;
2樓:網友
沒見過woed,倒是見過word,word在mfc中的擾祥定義:typedef unsigned short word;
你可以在mfc中定義乙個word型別的變數,然後右鍵點選轉到word的定義,就明李迅激此可以看到了。
什麼是c語言裡面的巨集
3樓:x哈利波特大
簡而言之:就是用乙個符號代替一堆東西。讓**精簡化。
4樓:網友
#define max 10
這就是巨集定義,意思就是以後在程式裡面用max,就相當於用 10
就是他們說的 !
c語言 巨集
5樓:
難道3不能是字串嗎?
3*pi"是字串,"3"是它的子串。
3*pi"巨集後為"3*"也是字串,整個源程式都被認為字串!
現在,還有有編譯,編譯時,編譯器會把3*當表示式計算,用結果再替換一次!
6樓:網友
..不能看成字串。
是這樣的。所謂的替換為字串。
指的是相當於更改了程式。
例如。我舉個極端的例子。
#define testa 0;
int main(void)
return testa
注意到了嗎,return那句沒有分號。
但是編譯可以通過。
因為在編譯時,編譯器會把testa的內容帶入到程式裡。
所以實際編譯的程式是。
int main(void)
return 0;
所謂的替換字串是這個意思。
7樓:網友
巨集定義是沒有固定型別的,這裡不是字串,你可以看做浮點數。
c語言的巨集
8樓:網友
肯定是7了。
max( a + b, c + d ) 100 替換後得(5+2) >3+3) ?5+2) :3+3) *100 // 注意前面沒括號,因此是:
7 > 6 ? 7 : 600,因此返回的就是7,如果要返回700必須這樣寫。
#define max( x, y ) x) >y) ?x) :y))
9樓:小樓微醉
一樓是正解的 巨集定義 只是絕對的替換 一定要注意括號。
c語言巨集名
10樓:網友
字串格式: #difine 識別符號 字串。
選bpi 代表 「這個字串。
11樓:仁伯良
帶小數點的數字預設是雙精度的。
不過即然涉及到巨集,常量選項更對一些。
12樓:伊·梵
#define 就是簡單的字串替換。
請問c語言,這兩個巨集名的巨集值有區別嗎?
13樓:尋平陽
有區別如果。
i=sum*2
第乙個==》i=ia+ib*2
第二個==》i=(ia+ib)*2
明顯不一樣。
巨集定義就是原樣替換。
14樓:網友
有。預編譯階段,巨集的時候,就有區別了。
比如 sum +a *sum
自己下就知道了,括號是必須要帶的!
15樓:網友
有區別#define 是直接替換,所以你在用時候,要注意是否要加括號,看具體情況(這是容易出錯的地方)
16樓:凝凝
絕對有:我還懷疑你寫錯了。
sum*2ia+ib*2
ia+ib)*2
17樓:網友
巨集的時候就有區別了 樓上幾位說的都對。
18樓:網友
more effective c++ 或者 effective c++
看一下條目,儘量用inline代替巨集這個條目。
詳細解釋了這個東東。
c語言巨集問題
19樓:網友
這個是濫用巨集定義的問題。
在程式執行到printf("該三角形的面積是:%f",area(e,f,g));這裡時,area是可以認知的相當與sqrt(s*(s-e)*(s-f)*(s-g)) 但是它裡面的s並不認知,再次呼叫巨集替換到x(a,b,c)時,這裡的#define x(a,b,c) (程式不能認知它,因此編譯會提示說a,b,c未宣告的標示符。
如果你非要使用巨集來處理這個問題,建議你將實參也用a,b,c.
將#define s x(a,b,c) 屏掉再替換area的巨集#define area(a,b,c) sqrt(x(a,b,c)*(x(a,b,c)-a)*(x(a,b,c)-b)*(x(a,b,c)-c)) 也可以處理。
希望對你有用!
補充:#define pi
#define s(r) pi*r*r
這裡的pi是巨集常量,並沒涉及傳入引數啊,你上面那樣寫會導致未知引數的錯誤。巨集常量就是替換下字元而已。而x(a,b,c)相當於呼叫。
理解!理解!
對於引數的替換倒不用,形參和實參不一定要統一的標示符!
換成a,b,c編譯是沒問題,但可以有更好的辦法定義這些。
20樓:小玉是我老婆
#define 只是簡單的巨集定義,簡單的替換。
對於你這道題,把主函式中的e,f,g分別改成a,b,c就對了。
21樓:關禕
把主函式中的e,f,g分別改成a,b,c就對了。
C語言中的常量是怎麼使用的,是不是通過巨集定義常量啊
對的!專家的推薦是這樣的 1,對於數值和字元常量,用 define,注意新增必要注釋 版2,對於其它權 型別常量,用 const 限定符。const 和 define 的區別在於1 const 像變數一樣有範圍 作用域 可見性等限制,一般來說好一點 2 define常常出現意料之外的事情,因為他是靠...
在c語言中什麼叫巨集定義的常量
在c語言中,bai巨集定義的常量就是du通過如zhi下格式來定義的乙個dao不帶引數的常量 define 識別符號版 字串權 舉例說明如下 include define pi 3.14 巨集定義常量,即pi 3.14 void main 巨集定義bai不佔記憶體空間,因為巨集du 在預處理zhi階段...
在c語言中for是無限迴圈嗎,c語言求大神解釋for為什麼是無限迴圈的
是迴圈,但不是無限呀,肯定還有個except然後結果就出來了 是無限迴圈 也可以用while 1 更直觀 c語言 求大神解釋 for 為什麼是無限迴圈的?該函式等同於while 1 由於執行for迴圈for 初始條件 判斷條件 結束時執行 的判斷條件沒寫,意味著判斷結果始終為真,沒有跳出迴圈的契機,...