简单的说:宏定义又称宏替换、宏代替,简称“宏”。最主要是要”换“。
下面是简单代码。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define st(a) #a
#define MAX(a, b) ((a) > (b)) ? (a) : (b)
#define PI 3.1415926
/*
宏的最终是替换,所以不要再宏里面定义变量,下面的n1,n2的定义建议不要用,宏替换后如果下面又有同名变量定义容易出错
*/
#define doit(n1, m1)\
int n2 = *n1;\
int m2 = 0;\
for(int i = 0; i < (n2); i ++)\
{\
m2 += i;\
}\
*m1 = m2;
int main()
{
int* n = (int *)malloc(4); //sizeof(int) = 4
*n = 100000;
int* m = (int *)malloc(4);
*m = 0;
doit(n, m);
printf("%d", *m);
int k;
k = clock();
printf("\n%d", k);
return 0;
}