#define和const

1.#define 和const都可以定义常量,但是#define定义仅仅是字符的替换,而const是带有类型的

#define a 3

const int b = 4;

int w = a;//这句话会将a直接替换为3,需要一个临时空间来存储3,然后再把3赋值给w

int x = b;//这句话会将b的值直接赋值给x,不需要临时空间

因此,如果是仅仅定义一个常量,并且基本都在本文件中使用,最好用const来定义

但是有些#define的有些功能const是替代不了的

例如:

#define TO_STR(x) #x

调用这个宏,会返回一个字符串,跟传入的字符串一样

#define CONCAT(x,y) x##y

这个会返回x和y拼接成的结果

--char username[] = "jack";

cout << CONCAT(user,name) <<endl;

上面的语句会输出jack

原文地址:https://www.cnblogs.com/xyzaijing/p/3604811.html