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;
}