大家好,我是阿林,一个c++的初学者。记录我学习c++的过程。
今天主要讲的是 const和define之间的区别
const和define都是定义常量,但是它们却有着定义域,作用域上的不同。
define是作用于全局的变量的。const作用于定义它的函数现在我就编程来区分两者之间的差别
//4 const和#define的相同之处
//在编译预阶段处理
void main83()
{
//int a = 10;
//int b = 20;
//int array[a + b];//linux内核中是成立的,编译linux内核的gcc的编译器支持;
// //c和c++编译器不支持这种语法现象。
const int c = 10;
const int d = 10;
int array2[c + d];
system("pause");
}
//5 const定义的变量,由编译器处理的,提供类型检查和作用域检查
void fun1()
{
#define a 10
const int b = 10;
#undef a //消除a的define的定义,让其只在fun1中使用而不会影响到fun2
}
void fun2()
{
//cout << "a = " << a << endl; //证明在不适用undef a的时候define会在整个作用域中。
//cout << "b = " << b << endl; //证明const会局限在自己定义的作用域中。
}