欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《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常量 有数据类型,编译器可以对其进行类型安全检查
  1. C++中const有什么作用
在这里插入代码片