预处理:#结尾,结尾不加分号
一、#defined宏定义VS函数
1、带参数:需要加括号
#include<stdio.h>
#define power01(n) n*n
int power02(int a)
{
return a*a;
}
#define power03(a,b) a*b
main()
{
printf("function para is =%f\n",27.0/power02(3.0));
printf("define1 pare is =%f\n",27.0/power01(3.0));
printf("define2 para is =%f\n",24.0/power03(1+2,2+3));
}
2、不带参数
#include<stdio.h>
#define PI 3.1415925
#define r 3
#define L 2*r*PI
#define R PI*r*r
main()
{
printf("%f\t%f\n",L,R);
// # undef r
printf("r=%d\n",r);
}
二、头文件#include<stdio.h>
三、条件编译
#include<stdio.h>
#define DEBUG
main()
{
#if 5
printf("if define\n");
#else
printf("if not define\n");
#endif
#ifndef DEBUG
printf("Debug not define\n");
#else
printf("Debug defined\n");
#endif
}
#define DEBUG 0
main()
{
#if 5
printf("if define\n");
#else
printf("if not define\n");
#endif
#ifdef DEBUG
printf("Debug not define\n");
#else
printf("Debug defined\n");
#endif
}
/**************************26_extern.h***************
#ifndef _STDIO_H
#define _STDIO_H
int max=100;
int add(int a,int b)
{
return a+b;
}
#else
int max=200;
int add(int a,int b)
{
return a+b;
}
#endif
*******************************************************/
/***************************26_extern_main.h********
//#include<stdio.h>
//#include"26_extern.c"
#include"26_extern.h"
main()
{
extern max;
extern add(int ,int);
int a=1,b=2,c,d;
c=add(a,b);
d=max;
printf("c=%d\td=%d\n",c,d);
}
*******************************************************/