(一)无参数的宏定义:
#define PI 3.14159 (无;),终止宏定义作用域使用#undef,习惯用大写字母表示,可以嵌套如,可用宏定义表示数据类型,使书写方便,
#define PI 3.14159
#define S PI*r*r
宏定义与typedef定义的区别:宏定义只是简单的字符串代换,是预处理,typedef是条语句(;),在编译时处理,不是简单代换而是对类型说明符的重新命名;
#include <stdio.h>
#define PIN1 char*
typedef char* PIN2;
void main()
{
PIN1 x,y;//4 1
//char *x,y;
PIN2 a,b;//4 4
//char *a,*b;
printf("By #define:%d %d\n\n",sizeof(x),sizeof(y));
printf("By typedef:%d %d\n\n",sizeof(a),sizeof(b));
}
对输出格式宏定义,可简化书写;
#include<stdio.h>
#define P printf
#define D "%d\n"
#define F "%f\n"
void main()
{
int a=5,c=8,e=11;
float b=3.8,d=9.7,f=21.08;
P(D F,a,b);