#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...