#define N 15 是在什么情况下用的
C/C++中的预处理宏,一般用来定义常量;也就是在程序运行过程中的不变量;
#define N 5 的意义实际是把代码中所有N出现的地方都换成数字5;常量的定义多用于表明数组大小,或者指定某一在代码中需要经常使用的不变量,如:
#define ARRAY_SIZE 10
int a[ARRAY_SIZE], i; // a数组大小被替换为10
for(i = 0; i < ARRAY_SIZE; ++i) // 又用到了SIZE
a[i] = i;
定义需要经常使用的常量还可以帮助人理解代码,避免“魔数”,而且易于管理和维护代码,如:
int a[10]; // magic number
............
如果代码很长,而且在下文的某处又要用到10这个数来定义其他的数组,获得数组a的元素个数或者打印数组元素的话,数字10的含义就变地不清楚了,比如:
for(i = 0; i < 10; ++i) // 10 is a magic number
{
......
}
所以最好的做法就是把经常需要使用到的常量给定义出来,这样不仅增强了代码的可读性,而且也使代码易于维护和管理,比如你根据需要在下文中需要修该常量来适应特定要求的话,比如改变数组的的大小,那么只就只需要修改:
#define SIZE 5为#define SIZE x(x是你想修改的数字)就可以了,而不用在代码中寻找每一处都使用过相应常量的地方而来逐个修改(查找和大多数情况下不能提供你所满意的操作)。