c語言中define巨集定義和變數定義的聯絡和區別

2021-06-21 04:07:27 字數 2388 閱讀 2513

1樓:匿名使用者

巨集定義是全域性性的,變數定義是區域性性的,

2樓:匿名使用者

巨集定義主要在預處理階段完成,由前處理器進行字元替換,變數定義則會在記憶體中為變數分配地址。

3樓:吉檀迦利

#define巨集定義的量是做常量處理的,如#define price 30,下文只要遇到price就代表常量30,他與變數的區別之一是在書出語句中printf(“%d”,a)(a為變數),這是合法的;但如果出現printf(“%d”,price)這就是不合法的。另外巨集語句在整個程式中有效,而變數只在某個函式內有效。

4樓:匿名使用者

1.define巨集定義是在程式執行中不可以改變的,變數可以改變

2.變數在他所定義的函式內部可以用 出了這個函式 生命週期就結束了;而define實在定義的時候就開始就開始有效,知道程式執行完畢,生命週期結束。

define的優點就是修改方便

5樓:紛採

沒有聯絡,至於區別,也就談不上

巨集定義是在編譯階段進行巨集替換,說白了就是個記號,而這些記號對應著需要替換的**,就是個方便程式設計的工具,沒有也行。當然巨集定義涉及變數,常量,語句,功能強大,不必多說。

而變數嘛,就是在記憶體或者暫存器裡面,儲存資料的容器,再詳細一點,就是某個實際存在的資料的符號地址,也就說,變數名的實際上是一些地址,為了便於程式設計才會有“名字”的。當然也不是說,變數名是指標,指標也是一種變數。

所以,毫無關係。

6樓:上海明珠醫院哮喘科

巨集定義的量為常量,且在程式中是不會改變的!!!

變數的定義是可以改變的。

c語言中巨集定義的1<<0 和直接定義1有什麼區別

7樓:匿名使用者

#define e1 1<<0

#define e2 1

e1+4 // 結果是16

e2+4 // 結果是5

至於是bug還是故意如此,在下就不知道了

8樓:金色潛鳥

巨集定義#define eot 1 << 0是規定在預編譯時,把 下面程式中 遇到的 詞 eot 用 字串 1 << 0 替代。

所以 不能 換成版 字元 1。

例如:權

#define eot 1 << 0

int x=1;

x = x + eot + 2;

printf("%#x ", x);

和#define eot 1

int x=1;

x = x + eot + 2;

printf("%#x ", x);

得到的結果 不同。前者 0x8, 後者 0x4--------

除非你已看過整個程式,你能確認 用 1 << 0 替代 和 用 1 替代 結果 一樣。

c語言中定義常數變數怎麼定義 用define的那種

9樓:

因為來define是一種巨集定義,源所以他屬於一種全域性型別,不需要在函式中定義,只要在源**開頭定義的話,整個原始檔都可以使用該變數,假如要要定義常數π,那就#define pi 3.1415926就可以了

例如#include

#define pi 3.1415926

int main(...)

void function(...)

有不懂追問吧,望採納

10樓:百小烏

#define pi 3.1415926

c語言中 預處理檔案(#define),巨集定義(#define)兩個寫法一樣有什麼區別?一定採納

11樓:嘟

巨集定義是預處理的

,預處理的不止是巨集定義。包括你包含的標頭檔案,預處理的定義在以後你學到編譯原理這門課的時候會解釋,他是編譯之前做的一件事情。總之,巨集定義跟預處理不是同一概念,只是巨集定義在編譯的過程中是預處理的。

望採納!

12樓:匿名使用者

你寫的兩個不是一樣的嗎

13樓:

沒有區別。一點區別都沒有 。

c語言中預處理中(#define),巨集定義(#define)兩個寫法一樣有什麼區別?一定採納

14樓:匿名使用者

#define就一個,沒有兩個

15樓:匿名使用者

所謂預處理,是在編譯前處理c程式,包括巨集定義指令#define、#undef;檔案包含指令#include;條件編譯指令#if、#ifndef等。所以你是概念混淆了。

C語言中預處理檔案(define),巨集定義(define)兩個寫法一樣有什麼區別?一定採納

巨集定義是預處理的 預處理的不止是巨集定義。包括你包含的標頭檔案,預處理的定義在以後你學到編譯原理這門課的時候會解釋,他是編譯之前做的一件事情。總之,巨集定義跟預處理不是同一概念,只是巨集定義在編譯的過程中是預處理的。望採納!你寫的兩個不是一樣的嗎 沒有區別。一點區別都沒有 c語言中預處理檔案包含 ...

什麼是巨集定義,在C語言中 巨集定義是什麼?

巨集定義是高階語言編譯器提供的常用語法,其目的是利用某一識別符號標識某個文字字串。在編寫程式時,如果程式中反覆地使用某個資料或某段程式片段,就可以考慮將這個資料或程式片段定義為巨集,然後每個出現該資料或程式片段的地方用巨集名替代 選擇巨集定義來做的好處是程式簡潔,可讀性好,而且當需要修改這些相同的程...

c語言中include和define有什麼區別

這是兩條前處理器指抄令。include是檔案包含指令,例如 include 這條指令會導致前處理器把 include後面跟的檔案 即stdio.h檔案 的內容替換到這條指令的位置。如果檔名由 括起來,將表示在依賴於系統的目錄中尋找這個檔案。如果檔名由 括起來,系統將會首先在當前程式目錄中查詢對應檔案...