目录
1.宏函数和宏定义
2.条件编译
3.类型转换
4.数组
1.宏函数和宏定义
(1)宏定义
宏函数的本质是对源文件进行替换
先声明一个宏,然后再main函数中使用该宏
#define MAX 100
int main()
{
printf("%d", MAX);
}
(2). 宏函数
宏函数的本质还是源文件替换,但是可以传递参数
如下的函数是个比较大小的宏函数
#define MAX(a, b) a > b ? a : bint main(){int max = MAX(1, 3);}
2.条件编译
/*如果没有包含stdio.h,就定义这个宏,这样避免重复引入头文件*/
#ifndef_ STDIO H_
#define_ STDIO_ H_
//头文件中可以放变量和函数的声明
#endif
条件编译的三种形式
其中标识符为宏名,该宏名在此前可以定义,也可以没有定义,程序段1和程序段2是由语句或预处理命令组成的程序序列。
该种格式的功能:如果标识符已被#define命令定义过,则对程序段1进行编译,否则对程序段2进行编译。如果没有程序2,本格式中的#else可以没有,可以写为:
3.类型转换
不同类型数据间进行混合运算,如果两个数据类型不同,则先自动进行类型转换,使二者具有同一种类型,然后进行运算。|
(1)整型、实型、字符型混合运算规律
1.+、、*、/运算的两个数中有一个为float或double型, 结果就是double型。因为系统是将float型先转换为double进行运算。
2.如果int型与float或double型数据进行运算,先把int型和float型转为double型,然后运算,结果是double型。
3.字符型与整型数据进行运算,实际用字符ASCII码值与整型进行运算,如果与实型运算,方法同2
4.整型有符号转为无符号后,再进行运算。
【以上均有编译系统自动完成】
简而言之:转向数据长度增长的方向
(2)强制类型转换和赋值转换
语法格式
==(类型名) (表达式) ==
char a=10;//定义char类型
int b;//定义int类型
b=(int)a;//char类型的变量a,强制类型转换为int后,赋值给b
4.数组
定义:一组有序且同类型数据集合的数据结构
-般形式:类型符数组名[常量表达式]
注意:数组名符合标识符规则
数组长度必须确定,即个数确定
常量表达式不能是变量(不确定的值)
数组中的第一个元素的下标总是0;