1樓:雪人晒太陽
在c語言源程式中,允許用一個識別符號來表示一個字串,稱為巨集,巨集定義是由源程式中的巨集定義命令完成的,巨集替換是由預處理程式自動完成的。巨集定義是c提供的三種預處理功能的其中一種,這三種預處理包括:巨集定義、檔案包含、條件編譯。
2樓:仁昌居士
c語言中的巨集定義用法分為兩種。
1、不帶引數的巨集定義比較簡單,就是用一個指定的識別符號來代表一個字串。它的一般形式為「#define 識別符號 字串」,例如#define e 2.718281828459。
這種方法使使用者能以一個簡單的名字代替一個長的字串。
2、帶引數的巨集定義不是僅僅進行簡單的字串替換,還要進行引數替換。其定義的一般形式為;「#define 識別符號(巨集名)(參數列) 字串」,字串中包含在括號中所指定的引數。例如#define s(a,b) a*b area=s(3.
2)。
在c語言中"巨集"是什麼意思?
3樓:楊塵一
簡單來說:巨集定義又稱為巨集代換、巨集替換,簡稱「巨集」。是c提供的三種預處理功能的其中一種。
說明:1、巨集名一般用大寫
2、使用巨集可提高程式的通用性和易讀性,減少不一致性,減少輸入錯誤和便於修改。例如:陣列大小常用巨集定義
3、預處理是在編譯之前的處理,而編譯工作的任務之一就是語法檢查,預處理不做語法檢查。
4、巨集定義末尾不加分號;
5、巨集定義寫在函式的花括號外邊,作用域為其後的程式,通常在檔案的最開頭。
6、可以用#undef命令終止巨集定義的作用域
7、巨集定義可以巢狀
8、字串" "中永遠不包含巨集
9、巨集定義不分配記憶體,變數定義分配記憶體。
4樓:萌萌
定義的意思,在c語言中的巨集定義就是定義外部變數,內部函式使用exiterm來呼叫
如:exiterm char c1,c2;
c語言中的巨集定義的字是:definec語言中的define巨集定義有帶引數的和不帶引數兩中形式,不帶參格式是:#define 巨集名,字串帶參格式是:
#define 巨集名(引數1,引數2,...) 字串在c語言裡巨集定義只用來做的巨集名替換,而不做語法檢查的,因而它不是c語句,所以在巨集定義的時候不需要在後面加";"巨集也在c裡也叫預處理命令,因為巨集是在程式編譯前先進行字元替換的,所以叫預處理.在c裡還有其它的預處理命令如:
#define
#undef
#ifdef等。
在c語言中什麼叫巨集定義的常量
5樓:天雲一號
在c語言中,巨集定義的常量就是通過如下格式來定義的一個不帶引數的常量:
#define 識別符號 字串
舉例說明如下:
#include
#define pi 3.14 // 巨集定義常量,即pi=3.14
void main()
6樓:匿名使用者
形如:#define pi 3.14159
pi就是一個巨集定義的常量 等於3.14159
7樓:藍白的生活
常量只是巨集定義的一種,巨集定義還可以定義其他東西。
c語言中的巨集定義有什麼用?
8樓:風林火陰山雷
您好!很高興為您解答。
巨集定義的用處主要體現在便於程式的除錯上。
比如我要寫一個計算圓相關資訊(周長、面積等等)的程式,需要定義π(3.14):
#define pi 3.14
那麼勢必pi這個標識可以在程式中代替所有的3.14,如果我發現計算的精度不夠,需要π的更多有效位時,則只需將巨集定義修改為:
#define pi 3.1415926
那麼程式中的所有pi都會變成3.1415926
可想而知,沒有巨集定義,我需要將**中全部的3.14都手動改為3.1415926
即使是定義double pi=3.14;,你會發現當**很長時,在亂軍叢中找到一行「double pi=3.14;」是多麼困難的事。
又比如陣列,定義時是不能出現「int a[n];」這樣的定義的,編譯通不過,因為必須規定陣列長度。
但如果是:
#define n 10
int a[n];
就可以,對巨集定義編譯器是不作檢查的,應為巨集定義只是簡單的符號替換。所以一旦我還沒有確定要定義多長的陣列,但又想通過編譯時,就可以提現巨集定義的用處了。
如此看來,巨集定義提升了程式編寫的靈活性。
望採納~如您還有不解,歡迎追問~
9樓:綠波菜
在這個題中是看不出什麼好處 for (int i=0; i以用 10 代替,因為題目簡單 但是如果比較複雜的 如二位陣列啊a[m][n] 中可能一個 for (int i=0; i m n 巨集定義,就不需再用具體數值代替 這樣 程式的可讀性就好很多,你要知道,程式設計師編好程式 也會有人幫他複查的,如果你都用數值代替 ,一旦**很複雜了你自己看的明白,別人就不知所云了,當然還有一些好處 如 當遇到較長數值時 用一個字母代替 有簡化作用等。 10樓:匿名使用者 ①重用性高:比如你定義一個函式a裡有個陣列a[10],其他地方用到了函式a但是陣列大小為100,若是用了巨集定義就不用一個個改了,直接把函式複製過去#define n 10改為#define n 100即可 ②不易出錯:用到很多的某一資料時很管用如#define π 3.1415916 11樓:閒來無事 編譯的時候替換成10 c語言中什麼是巨集定義,它是幹什麼的? 12樓:蜻蜓點水 就是強制性的字元替換,比如說你要用a代表6,那麼後面所有是a的地方都是用字元6替換掉就可以了,這個是不進行運算只是替換 比如define a (a+b) 那麼後面所有a的地方都可以全部替換成(a+b)但是你不能用a+b的結果 13樓: 巨集定義又稱為預定義,它有很多功能,我也剛剛瞭解一點。首先他能定義常量,這樣我們可以集中統一修改。其次,它還能定義函式(預定義)。總之,熟悉它會很方便。 在c語言中「巨集是什麼意思」 14樓:馬化騰 定義的意思 在c語言中的巨集定義就是定義外部變數 內部函式使用exiterm來呼叫如:exiterm char c1,c2; c語言中的巨集定義的字是:define c語言中的define巨集定義有帶引數的和不帶引數兩中形式不帶參格式是:#define 巨集名 字串帶參格式是:#define 巨集名(引數1,引數2,... ) 字串在c語言裡巨集定義只用來做的巨集名替換,而不做語法檢查的,因而它不是c語句,所以在巨集定義的時候不需要在後面加";" 巨集也在c裡也叫預處理命令,因為巨集是在程式編譯前先進行字元替換的,所以叫預處理.在c裡還有其它的預處理命令如: #define #undef #ifdef等等 15樓:匿名使用者 巨集就是一種等價替換,把**原封不動的替換到**裡,注意符號優先順序 16樓:匿名使用者 巨集就是常量 應該有巨集觀的意思,因為它們都是全域性常量 17樓:賓若谷苟緞 簡單來說:巨集定義又稱為巨集代換、巨集替換,簡稱「巨集」。是c提供的三種預處理功能的其中一種。 說明:1、巨集名一般用大寫 2、使用巨集可提高程式的通用性和易讀性,減少不一致性,減少輸入錯誤和便於修改。例如:陣列大小常用巨集定義 3、預處理是在編譯之前的處理,而編譯工作的任務之一就是語法檢查,預處理不做語法檢查。 4、巨集定義末尾不加分號; 5、巨集定義寫在函式的花括號外邊,作用域為其後的程式,通常在檔案的最開頭。 6、可以用#undef命令終止巨集定義的作用域 7、巨集定義可以巢狀 8、字串" "中永遠不包含巨集 9、巨集定義不分配記憶體,變數定義分配記憶體。 c語言中的「巨集」是指什麼? 18樓:加百列 巨集是一種預處理指令,它提供了一種機制,可以用來替換源**中的字串。 1、條件編譯: c語言中,預處理過程讀入源**,檢查包含預處理指令的語句和巨集定義,並對源**進行相應的轉換,預處理過程還會刪除程式中的註釋和多餘的空白符號。 預處理指令是以#開頭的**行,#必須是該行除了空白字元外的第一個字元。#後是指令關鍵字,在#和指令關鍵字之間允許存在若干空白字元。 使用巨集進行條件編譯的用法與使用巨集防止多重引用類似。示例如下: 使用條件編譯,方便程式設計師在除錯程式的過程中,執行一些在程式釋出後並不需要執行的指令。只要在需要除錯的**前加上_debug的定義,就可以在除錯程式的過程中輸出除錯資訊。 這樣方便檢視程式在執行過程中有沒有出現錯誤,定位錯誤出現的地方。而在程式釋出之前,取消_debug的定義就可以不再執行除錯**。 2、巨集函式: 函式的呼叫是需要一定的時間和空間代價的。因為系統在呼叫函式時,需要保留"現場",即將程式要執行的指令的下一條指令的位置壓入棧,然後轉入呼叫函式去執行,呼叫完函式後再返回主調函式,恢復"現場",返回到棧裡儲存的的下一條指令的位置繼續執行。 所以函式的呼叫需要額外的時間和空間代價。 而巨集函式則不存在上述問題,巨集函式在預編譯時,同函式定義的**來替換函式名,將函式**段嵌入到當前程式,不會產生函式呼叫。 所以會省去普通函式保留現場恢復現場的時間,但因為要將定義的函式體嵌入到當前程式,所以不可避免的會佔用額外的儲存空間。 在頻繁呼叫同一個巨集的時候,該現象尤其明顯。巨集函式的示例定義如下: #define max(a,b) ((a)<(b)?(b):(a)) 巨集函式的優點在於避免函式呼叫,提高程式效率。 同時需要注意的是inline識別符號。inline也將函式定義為內聯的。但是使用行內函數需要注意的是: 函式體必須十分簡單,不能含有迴圈、條件、選擇等複雜結構,否則就不能作為行內函數了。 事實上,有時候即便你沒有將函式指定為行內函數,編譯器也會將一些簡單的函式作為行內函數處理,而對於一些複雜的函式,即使宣告為行內函數,編譯器也不會理會的。 inline函式的瓶頸就在於此,使用inline識別符號將函式宣告為內聯的,但這只是一種提示,到底編譯器有沒有優化還依賴於編譯器的實現,而使用巨集函式則完全由**本身控制。 但在使用巨集函式的時候,需要明確的是巨集函式只是簡單的替換,需要注意括號的使用。 擴充套件資料: 巨集的更多規則特性: (1)巨集名一般用大寫。 (2)使用巨集可提高程式的通用性和易讀性,減少不一致性,減少輸入錯誤和便於修改。例如:陣列大小常用巨集定義。 (3)預處理是在編譯之前的處理,而編譯工作的任務之一就是語法檢查,預處理不做語法檢查。 (4)巨集定義末尾不加分號。 (5)巨集定義寫在函式的花括號外邊,作用域為其後的程式,通常在檔案的最開頭。 (6)可以用#undef命令終止巨集定義的作用域。 (7)巨集定義不可以巢狀。 (8)字串" "中永遠不包含巨集。 (9)巨集定義不分配記憶體,變數定義分配記憶體。 (10)巨集定義不存在型別問題,它的引數也是無型別的。 在c語言中ch c a a 的意思是,是把表示大寫字母的變數c轉換為小寫字母的語句,使用前一般要先判斷一下的,如下 if c a c z ch c a a 因為當c b 時,c a 就等於1,然後1 a 就是 b 如果事先不檢測的話,當c不是大寫字母時作這樣的轉換是會無法理解的。在c語言中ch c ... 型別說明符 變數名稱 賦值表示式。這是基本的。比如 int a 1 2 char b b 定義了一個整數型變數a 其值為1 2就是3,定義了一個字元型變數b,b的值為字元 b 型別說明符變數名稱還可以加修飾說明,比如前面加上const表示這是一個不能修改值得常量等等。變數 是一個能夠存放某個指定型別... 最近 盤 字很流行,盤是什麼意思?為什麼能成為網路熱詞?在合法的c語言中源程式 中,不考慮預處理,有意義的操作 或 只可能在以下場合見到 表示二級指標型別。例如char 是指向char 指標型別的型別,而char 型別是指向char指標的型別。一般用於指標動態陣列,例如一個確定的char 和一個長度...在c語言中,在C語言中ch c A a 是什麼意思,其中ch和c是字元
c語言中變數定義是什麼,c語言中exit怎麼定義?
在c語言中表示什麼意思在c語言中是什麼意思