宏定义
在c语言程序编译之前处理的内容。
一般形式:#define 标识符 字符串
- 宏定义
- 文件包含
- 条件编译
1.不带参数的宏定义。
例:输入圆的半径,求圆的周长(2*pi*r
)和面积(pi*r*r
).
#include<stdio.h>
#define PI 3.14159
int main(){
float r;
scanf("%f",&r);
float s=PI*r*r;
printf("S=%-10.3f\n",s);
float c=PI*2*r;
printf("C=%10.3f\n",c);
return 0;
}
2.在定义宏的时候,可以使用之前定义过的宏定义。
例:给定圆的半径,求圆的周长(2*pi*r
)和面积(pi*r*r
).
#include<stdio.h>
#define R 4
#define PI 3.14159
#define L 2*PI*R
#define S PI*R*R
int main(){
printf("L=%f,S=%f,L,S");
return 0;
}
3.带参数的宏定义
带参数的宏定义不仅对字符串进行替换,还要对参数进行替换。
一般形式:#define 宏名(参数)字符串
例:给定圆的半径,求圆的面积(pi*r*r
)
#include<stdio.h>
#define PI 3.14159
#define S(r)PI*r*r
int main(){
float a=3.1;
float area=S(a);
printf("s=%f",area);
return 0;
}
#define F(x) x+x
#include<stdio.h>
#define F(x) x+x
int main(){
int a=6,b=2,c;
c=F(a)/F(b);//a+a/b+b=6+3+2
printf("c=%d",c);
return 0;
}
文件包含有俩种形式:
#include<......>
系统提供给用户的
#include"......"
用户自定义的文件
main函数
#include<stdio.h>
int main(int a,char *b[]){//参数的个数 字符串
int i=0;
while(i<=2){
printf("%s\n",*(b+i));
i++;
}
return 0;
}
共用体(union)--数据类型
作用:在同一段内存种,存放不同类型的变量。
#include<stdio.h>
typedef union Date{
int i;
char ch;
double f;
}D;
int main(){
D a;
printf("%d\n",sizeof(a));
a.i=96;
a.ch='A';
printf("%d\n",a.i);
printf("%c\n",a.ch);
printf("%f\n",a.f);
return 0;
}
枚举类型
如果一个变量只有几种可能的值,则可以定义枚举类型。
enum
--->常量整数
定义一个枚举类型,枚举类型种的元素,默认是从0开始的。
#include<stdio.h>
enum
Weekday{sum=1,moon,tue,wed,thu,fri,sat};
int main(){
int a;
enum Weekday w;//整型int常量
printf("%d\n",sizeof(w));//4
w=fri;
printf("%d\n",w);
return 0;
}