WOED在C語言中是巨集定議嗎?

2025-05-04 06:10:10 字數 3726 閱讀 8476

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 初始條件 判斷條件 結束時執行 的判斷條件沒寫,意味著判斷結果始終為真,沒有跳出迴圈的契機,...