#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