c程序语言设计第二版文本小结
1、%d按照十进制整形数打印,%6d按照十进制整型数打印,至少6个字符宽度。
printf还支持下列格式说明:
%f浮点数打印。%o八进制数打印。%x十六进制数打印。%c表示字符打印。%s字符串打印。%%百分号本身打印。
2、ANSI C语言中的全部转义字符序列如下:
\a 响铃符 \\ 反斜杠
\b 回退符 \? 问号
\f 退页符 \' 单引号
\n 换行符 \" 双引号
\r 回车符 \000 八进制数
\t 横向制表符 \xhh 十六进制数
\v 纵向制表符
3、当变量为固定参数时,正常程序避免使用
int temp;temp=0;此类赋值写法,此类写法称之为“幻数”
而应使用
#define temp 0 此类符号常量写法。
关于#define 与 const的区别
①从定义常量角度来说,const定义的常数是变量 也带类型,define定义的只是常数 不带类型
②从起作用阶段来说,const在编译、运行的时候起作用,define在编译的预处理阶段起作用
③从作用方式来说,const有对应的数据类型 需要进行一些判断 可以避免一些低级错误,define只是简单的字符串替换 没有类型检查
④从空间占用来说,const本质上还是一个float 占用数据段空间,define预处理后占用代码段空间。
从存储方式来说const定义的只读变量在程序运行过程中只有一份备份,define是有多少地方就替换多少次 它定义的宏常量在内存中有若干个备份。故相对来说const更加节省空间。
⑤从代码调试方式来说,const常量是可以进行调试的,define不可以进行调试 因为在预编译阶段就已经替换掉了
⑥从是否可以再定义角度来说,const不能重定义,#define可以通过undef取消某个符号的定义 再重新定义。
4、字符输入/输出
无论文本从何处输入,输出到何处,其输入/输出都是按照字符流的方式处理。
文本流是有由多行字符构成的字符序列,而每行字符则由0个或多个字符组成,行末是一个换行符。标准库负责使每个输入/输出流都能够遵守这一模型。
5、中断里不能放任何任务函数
因为最低优先级的中断都可以打断最高优先级的任务。所有任务不能抢占中断函数。