define的相關用途

2021-08-22 03:21:43 字數 1285 閱讀 2731

#include "stdafx.h"

#include using namespace std;

#if 0

1.#define 定義數值巨集常量

#define pi 3.1415926

2.#define 定義字串巨集常量 如相關路徑

#define path "e:\\work\\list\\code\\a.out"

路徑中\切記要寫成\\,如果路徑太長可以分行來寫並用\進行連線

#define path "e:\\work\\list" \

"\\code" \

"\\a.out"

3.#define不能定義注釋符號

#define a //

//#define b /*

//#define c */

因為注釋先於預處理指令被處理,在預處理指令替換前,注釋已經處理完畢

4.#define定義巨集函式

#define sqr(x) ((x)*(x)) 多加括號,避免替換後運算子優先順序出現問題

注意定義時的空格問題 sqr與(x)之間不能有空格

但使用的時候可以有空格 sqr (5)與sqr(5) 相同

得到指定位址上的乙個位元組、字

#define mem_b(x) (*( (byte*) (x) ) )

#define mem_w(x) (*( (word*) (x) ) )

5.相關應用

(1)定義函式體

#define func(n) \

int func##n(int a, int b)\

實現每乙個函式體

將產生函式名為func0、func1、func2的函式體

func(0)

func(1)

func(2)

......

使用函式指標陣列引用這些函式

int(*fnfunc[2])(int, int) =

int main()

}(2)定義類中相關成員(屬性讀取器)

#define cc_synthesize(vartype,varname,funname) \

protected: vcartype varname;\

public: vartype get##funname(void) const \

public: void set##funname(vartype var)

//其他類定義中使用

class config

;#endif

c預編譯 define相關

是生成字串 define a x x a bc bc 是連線 define a x abc x a 123 abc123 error是生成編譯錯誤訊息 ifdef abc error something wrong.endif 如果abc是已經定義的巨集,那麼編譯的時候就會顯示錯誤訊息somethi...

C 慎用define,以及相關的替代的方法

在c 中,巨集是乙個非常好用的預處理功能,同時,它又有一些不好的地方,特別是用 define來實現macros,如果你這樣做的話,你肯定要為每個引數都加上小括號,否則你懂得。但是這樣仍然存在問題,說乙個最近看到的例子 求兩個變數中最大的那個 define the max a,b f a b a b ...

通訊原理MATLAB自 互相關函式的用途及部分實現

matlab提供了計算互相關和自相關的函式xcorr函式 1.使用方法 c xcorr x,y c xcorr x c xcorr x,y,option c xcorr x,option c xcorr x,y,maxlags c xcorr x,maxlags c xcorr x,y,maxlag...