C++巨集定義#define
可以用#define命令將一個指定的識別符號(即巨集名)來代表一個字串。定義巨集的作用一般是用一個短的名字代表一個長的字串。它的一般形式為:
#define 識別符號 字串
這就是已經介紹過的定義符號常量。如:
#define PI 3.1415926
還可以用#define命令定義帶引數的巨集定義。其定義的一般形式為:
#define 巨集名(引數表) 字串
如:
#define S(a, b) a*b //定義巨集S(矩形面積),a、b為巨集的引數
使用的形式如下:
area=S(3, 2);
用3、2分別代替巨集定義中的形式引數a和b,即用3*2代替S(3, 2)。因此賦值語句展開為:
area=3*2;
由於C++增加了內建函式(inline),比用帶引數的巨集定義更方便,因此在C++中基本上已不再用#define命令定義巨集了,主要用於條件編譯中。
相關推薦
C++巨集定義#define
可以用#define命令將一個指定的識別符號(即巨集名)來代表一個字串。定義巨集的作用一般是用一個短的名字代表一個長的字串。它的一般形式為: #define 識別符號 字串 這就是已經介紹過的定義符號常量。如: #define PI 3.1415926 還可以用#defin
c語言巨集定義#define
1. 利用define來定義 數值巨集常量 #define 巨集定義是個演技非常高超的替身演員,但也會經常耍大牌的,所以我們用它要慎之又慎。它可以出現在程式碼的任何地方,從本行巨集定義開始,以後的程式碼就就都認識這個巨集了;也可以把任何東西定義成巨集。因為編譯器會在預編譯的時候用真身替換
【C語言】巨集定義define 和型別重新命名typedef
C語言裡面有兩個不容易區分的語法概念,巨集定義define 和型別重新命名typedef。下面我們來談一下兩者之間的差異。 1.型別重新命名typedef: 關鍵字typedef提供了一種為已定義好的資料型別建立別名的機制,為了建立更簡短的型別名,通常使用type
C/C++預處理、巨集定義--你和大牛之間只差一個巨集定義#define
今天讀一個github上下載的C語言程式碼,讀得時候就像在讀天書,完全不像C。在此之前,我一直以為自己C語言掌握的還不錯的。所以惡補了以下關於預處理的知識。 相信很多讀者和我一樣,只是會用C語言而已,只會迴圈跳躍閉著眼,但是學了巨集定義之後就馬上可以走上人生巔峰了。廢話到此為止,下面開整: 引用經
巨集定義#Define和Typedef的用法和區別
一:各自的定義 (一) Typedef 本身是一種儲存類的關鍵字,在計算機程式語言中用來為複雜的宣告定義簡單的別名。 Typedef 的含義: 找到你所要宣告的通用格式。例如這裡申明 inta[4],b[4],c[4],只有a,b,c不
iOS開發巨集定義(#define)注意
在開發中常用#define來記錄各種數值,一般情況下是沒有問題的,但是當巨集中有加減運算,並被用於乘除等運算中時計算的數值就可能不準確。 舉例 #define kItemWith self.bounds.size.height - 10 這裡定義了一個item的長度,正常情
typedef詳解以及與巨集定義#define的區別
typedef是在計算機程式語言中用來為複雜的宣告定義簡單的別名,它與巨集定義有些差異。它本身是一種儲存類的關鍵字,與auto、extern、mutable、static、register等關鍵字不能出現在同一個表示式中; typedef 中文解釋:宣告型別; typedef為C語言
GCC編譯時增加巨集定義-D識別符號,相當於巨集定義#define 識別符號
GCC編譯時增加巨集定義-D<識別符號>,相當於#define <識別符號>,可以在遇到條件編譯時執行。 #ifdef <識別符號> //條件編譯內容 #
[C++] C++中的巨集定義詳解 C++巨集定義詳解
轉載自:C++中的巨集定義 和 C++巨集定義詳解 一、#define解析 #define是C語言中提供的巨集定義命令,其主要目的是為程式設計師在程式設計時提供一定的方便,並能在一定程度上提高程式的執行效率,但學生在學習時往往不能 理解該
C巨集定義中##連線符與#符的含義
文章目錄 參考 note 不帶引數的巨集 附加說明: 帶引數的巨集 應題重點 有參巨集定義中#的用法 有參巨集定義中##的用法 實際的例子:
C++巨集定義的優缺點
一、#define的基本用法 #define是C語言中提供的巨集定義命令,其主要目的是為程式設計師在程式設計時提供一定的方便,並能在一定程度上提高程式的執行效率,但學生在學習時往往不能 理解該命令的本質,總是在此處產生一些困惑,在程式設計
C/C++巨集定義交換兩個值
#define SWAP(t,a,b) \ do{ \ t c = a; \ a = b; \ b = c;
C++/C巨集定義中## 連線符與# 符的含義
轉載 ## 連線符號由兩個井號組成,其功能是在帶引數的巨集定義中將兩個子串(token)聯接起來,從而形成一個新的子串。但它不可以是第一個或者最後一個子串。所謂的子串(token)就是指編譯器能夠識別的最小語法單元。具體的定義在編譯原理裡有詳盡的解釋,但不知道也無所謂。
c 巨集定義log日誌簡單列印
正常日誌info列印 #define LOG_INFO(format, ...) \ {
巨集定義#define括號使用的深入認識
巨集定義:注意x,y值都有一個括號,和特定的符號時 需要加上括號!// SWAP(x, y) 交換x,y的值 #define SWAP(x, y) \ (y) = (x) + (y); \ (x) = (y) - (x);
linux C巨集定義實現列印除錯資訊
本文僅實現了三種巨集定義除錯 #define LOG(s) 日誌顯示(檔名:行號}+日誌資訊 #define ERROR(s) 錯誤資訊
C巨集定義的簡單總結,#的用法
今天在網上突然發現了下面幾個關於c程式碼中的巨集定義的說明,回想下,好像在系統的程式碼中也見過這些零散的定義,但沒有注意,看到別人總結了下,發現果然很有用,雖然不知有的道可用與否,但也不失為一種手段,所以就先把它摘抄下來,增加一點見識:1,防止一個頭檔案被重複包含 #ifnd
C語言巨集定義中#define中的井號#的使用
#include <stdlib.h> #include <stdio.h> #include <string.h> typedef enum { E_1, E
【C語言】typedef(自定義資料型別)與#define(巨集定義)用法比較
不管是在C語言還是在C++中,typedef這個詞都不少見,當然出現頻率較高的還是在C程式碼中。typedef和#define有些相似,但更多的是不同,特別是在一些複雜的用法上,就完全不同了。 1.巨集定義(#define) 巨集定義又稱為巨集代換
C語言裡面的行內函數(inline)與巨集定義(#define)探討
在 C 中,你可以通過在結構中設定一個 void* 來得到“封裝的結構”,在這種情況下,指向實際資料的 void* 指標對於結構的使用者來說是未知的。因此結構的使用者不知道如何解釋void*指標所指內容,但是存取函式可以將 void* 轉換成適當的隱含型別。這樣給出了封裝的一種形式。