宏定义
#define <名字> <值> 直接文本替换
注意结尾没有分号,因为不是C语句;名字必须是一个单词,值可以是各种东西
如果一个宏的值超过一行,最后一行之前的行末需要加\
预定义的宏:
__LINE__ 源代码当前所在的行号
__FINE__ 源代码文件的文件名
__DATE__ 编译时的日期
__TIME__ 编译时的时间
像函数的宏:
#define cube(x) ((x)*(x)*(x))
带参数的宏的原则:
一切都要括号
整个值要括号
参数出现的每个地方都要括号
变量的声名
int i; 变量的定义
extern int i; 变量的声明
声明是不产生代码的;定义是产生代码的
标准头文件结构:
#ifndef __LIST_HEAD__
#define __LIST_HEAD__
……
#endif
格式化的输入输出
1.printf:
%[flags][width][.prec][hIL]type
flag:
"-" 表示左对齐 ;"+"表示在前面放+或-;"0"表示0填充
width和.prec:
"number" 表示最小字符数; "*"下一个参数是字符数; ".number"小数点后的位数;".*"下一个参数是小数点后的位数
hIL:
hh :单个字节; h: short; l :long; ll: long long; L: long double;
2.scanf:
%[flag]type
*: 跳过; 数字:最大字符数; hh:char h:short; l: long,double; ll:long long; L:long double