Effective c++学习笔记——用 const 和 inline 语句 代替 #define预处理命令( 尽量用 编译器 替代预处理器 )

                使用 #define 的缺点:  

你的工程组成员,定义了一个文件

“aa.h”

#define max 666666


你包含了这个头文件

#include <iostream>
#include "aa.cpp"
int main()
{
    。。。。。。           
}

这时候你的程序运行出错了, 抛出了一个 666666 处的错误。 why?这是由于#define由预处理器替换成 666666, 所以编译器只知道 666666, 而不知道 max 

你会很懵逼。    你要一个个去 “aa.h"这个头文件中去找??? too young too simple

    解决方法;

用const代替 #define, 这个操作由编译器执行( 作为一个语言常量,max肯定会被编译器获知,并且进入记号表内), 所以不会出现报 666666 这种错误,而会直接抛出变量名 的错误。 以便于定位错误                

const auto max = 666666;

特别注意:未完待续




猜你喜欢

转载自blog.csdn.net/pursue_my_life/article/details/80460794
今日推荐