《C语言深度剖析》学习笔记二
2012-09-16 10:02
253 查看
枚举与#define宏的区别
1.#define宏常量是在预编译阶段进行简单替换。枚举常量则是在编译的时候确定其值。
2.一般在编译器里,可以调试枚举常量,而不能调试宏常量。
3.枚举可以一次定义大量相关的常量,而#define宏一次只能定义一个
Typedef
功能:取别名,制造马甲。
Typedef得到的也是类型名,在与const连用时,判断修饰对象时忽略
Typedef {
…………
}stu, *stu_ptr;
const stu_ptr stu3;
stu_pst const stu4;
判断时忽略类型名stu_ptr , 第一个修饰stu3指针,第二个修饰stu4指针
Typedef与#define的区别
#define 只是进行简单的替换,不做语法检查,在预编译时进行。
#define a int[10] typedef int a[10]
1 错
2 A B错误
3 错
4 CDEFGH正确
5 CD正确
6 CDEFGH正确
7 CD正确
8 CDEFGH正确
数组指针域指针数组,看结合,取决于第一个结合的类型;
函数指针:指向函数的指针
编译器将注释替换成空格,而不是简单的剔除
多重嵌套时,应当在一些段落的结尾处加注释;
注释应注重“为什么(why)”, 而不是“怎么做(how)”;
位移运算符的优先级低于算数运算符
左移和右移的位数不能超过数据的长度,不能小于0;
贪心法:从左到右一个一个字符的读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的2个字符组成的字符串是否有可能是一个符号的组成部分;如果可能,继续读入下一个字符,重复上述判断知道读入的字符组成的字符串已不再可能组成一个有意义的符号。
1.#define宏常量是在预编译阶段进行简单替换。枚举常量则是在编译的时候确定其值。
2.一般在编译器里,可以调试枚举常量,而不能调试宏常量。
3.枚举可以一次定义大量相关的常量,而#define宏一次只能定义一个
Typedef
功能:取别名,制造马甲。
Typedef得到的也是类型名,在与const连用时,判断修饰对象时忽略
Typedef {
…………
}stu, *stu_ptr;
const stu_ptr stu3;
stu_pst const stu4;
判断时忽略类型名stu_ptr , 第一个修饰stu3指针,第二个修饰stu4指针
Typedef与#define的区别
#define 只是进行简单的替换,不做语法检查,在预编译时进行。
#define a int[10] typedef int a[10]
1 错
2 A B错误
3 错
4 CDEFGH正确
5 CD正确
6 CDEFGH正确
7 CD正确
8 CDEFGH正确
数组指针域指针数组,看结合,取决于第一个结合的类型;
函数指针:指向函数的指针
编译器将注释替换成空格,而不是简单的剔除
多重嵌套时,应当在一些段落的结尾处加注释;
注释应注重“为什么(why)”, 而不是“怎么做(how)”;
位移运算符的优先级低于算数运算符
左移和右移的位数不能超过数据的长度,不能小于0;
贪心法:从左到右一个一个字符的读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的2个字符组成的字符串是否有可能是一个符号的组成部分;如果可能,继续读入下一个字符,重复上述判断知道读入的字符组成的字符串已不再可能组成一个有意义的符号。
相关文章推荐
- 《C语言深度剖析》学习笔记
- 《C语言深度剖析》学习笔记四--指针
- 《C语言深度剖析》学习笔记--------第一章-----关键字
- 《C语言深度剖析》学习笔记五--内存管理
- 《C语言深度剖析》学习笔记六--函数及编码规范
- 《C语言深度剖析》学习笔记----内存管理(1)----内存对齐
- 《C语言深度剖析》学习笔记1
- 《C语言深度剖析》学习笔记----C语言关键字
- 《c语言深度剖析》学习笔记2
- 《C语言深度剖析》学习笔记----内存管理(2)
- 《C语言深度剖析》学习笔记----C语言中的符号
- 《c语言深度剖析》学习笔记4
- 《JavaScript高级程序设计》学习笔记——DOM
- 《数据结构与算法》学习笔记25 红黑树
- (转)《代码大全》学习笔记:第10,11,12,13章 关于变量的使用,命名等
- 《A Tour of PostgreSQL Internals》学习笔记——查询处理分析
- 《调试九法:软硬件错误的排查之道》学习笔记
- 学习笔记_实例属性和类属性
- 《Oracle编程艺术》学习笔记(4)-DEDICATED SERVER,SHARED SERVER,TNS,LISTENER
- 《图解HTTP》学习笔记