C++---宏定義代替函數

1、宏定義與函數的區別

1.1宏定義函數未定義參數類型,任何操作合法的參數類型都可以傳進宏定義中,而函數的參數是與類型有關的;自定義函數有明確的參數類型。

1.2宏定義相較於函數,不需要調用棧,運算速度更快

1.3宏定義只是簡單的替換,容易發生錯誤

#define SUM(a,b) a+b
#define SUM_TWO(a,b) (a+b)
int v1  = 10;
int v2  = 20;
int res = 0;
res = SUM(v1,v2)/10;        //本意求(10+20)/10=3,計算結果爲 12
res = SUM_TWO(v1,v2)/10;    //計算結果爲3 

1.4宏定義會增長程序的長度

2、宏定義與長函數

注意:每一個換行的時候加上一個"\"

#include "stdafx.h"

#define PRINTF(a,b){\
for(int i = a;i < b;i++)\
printf("%d\n",i);\
}\

int main()
{
	int a = 1;
	int b = 10;
	PRINTF(a, b);
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章