《C和C++程序员面试秘笈》第2章 预处理、const、static与sizeof
程序员文章站
2024-01-30 10:55:46
...
1. 预处理的使用
#ifdef XXX
#endif
2. #define
1、三目运算符( ? : ),能产生比if-else更优化的代码,并且书写上更加简洁明了
2、用#define定义的宏,需要把参数括起来;如果只是简单的文本替换,如果不注意,很容易引起歧义
3. #define 宏定义的使用
宏定义展开是在预处理时期,也就是在编译之前
加括号时,要加全
4. 宏参数的连接
1、使用#把宏参数变为一个字符串
#define STR(s) #s
STR(s)定义的是一个参数s表示的字符串
当调用时,如:STR(vck),实际表示就是字符串“vck”
2、使用##把两个宏参数贴合在一起
#define CONS(a,b) (int)(a##e##b)
CONS(a,b)定义的是一个将参数a b按aeb连接起来的一个整型值
当调用时,如:CONS(2,3),实际表示的就是整型值2e3,也就是十进制数2000
5.略
6.略
7. const的使用
常量指针 const修饰的是指针指向的内容,指针指向的内容为常量,不能改,指针指向可以改
指针常量 const修饰的是指针,指针指向不能更改,指针指向的内容可以改
8. const与#define的特点与区别
#define 只是用来做文本替换的
const常量 有数据类型,编译器可以对其进行类型安全检查
- C++中const有什么作用
在这里插入代码片