c语言有强大的预处理器指令,在很多情况下都是很有用的。
首先介绍什么是预处理器,预处理器就是在程序的源代码编译之前,会对程序进行翻译工作,就是把这程序\之后的回车去掉,以及去掉注释,然后会把之间的空白自符去掉,然后再根据预处理指令把程序进行预处理操作,等着一切都进行完毕以后,就会进行编译操作。
#define与#undef的使用:
#define是最常用的预处理器指令,他代表一个宏定义。例如这样一个例子,#define A 1就代表用1代替接下来的代码里边出现的A,由于这是预编译指令,是在程序的编译之前进行的,所以完全不必担心程序执行的效率的影响,这么做反而会使得程序的可读性以及可维护性得到很大的提高,强烈建议以后常用的常量都用#define来表示。
另外,c语言允许对宏定义的重定义,只是会覆盖之前的宏定义而已。
#define不仅可以宏定义数值常量,还可以宏定义函数,其实这不能称之为函数,只是把对应的自符串替换成为对应的代码而已。例如#define S(X) X*X 的话,在接下来的程序中使用S(2)的话,就会被预处理器替换成为2*2,但是有一个缺点,如果是S(2+1)的话,就会被替换成为2+1*2+1,这肯定不是你想要的,所以对于宏定义的函数最好都加上括号,并且每一个元素都加上括号。并且注意在宏定义的函数里边不要使用++或者--的运算符,会造成不好的后果。
宏定义的函数并不适合定义比较大的函数,宏定义的函数比较适合
首先介绍什么是预处理器,预处理器就是在程序的源代码编译之前,会对程序进行翻译工作,就是把这程序\之后的回车去掉,以及去掉注释,然后会把之间的空白自符去掉,然后再根据预处理指令把程序进行预处理操作,等着一切都进行完毕以后,就会进行编译操作。
#define与#undef的使用:
#define是最常用的预处理器指令,他代表一个宏定义。例如这样一个例子,#define A 1就代表用1代替接下来的代码里边出现的A,由于这是预编译指令,是在程序的编译之前进行的,所以完全不必担心程序执行的效率的影响,这么做反而会使得程序的可读性以及可维护性得到很大的提高,强烈建议以后常用的常量都用#define来表示。
另外,c语言允许对宏定义的重定义,只是会覆盖之前的宏定义而已。
#define不仅可以宏定义数值常量,还可以宏定义函数,其实这不能称之为函数,只是把对应的自符串替换成为对应的代码而已。例如#define S(X) X*X 的话,在接下来的程序中使用S(2)的话,就会被预处理器替换成为2*2,但是有一个缺点,如果是S(2+1)的话,就会被替换成为2+1*2+1,这肯定不是你想要的,所以对于宏定义的函数最好都加上括号,并且每一个元素都加上括号。并且注意在宏定义的函数里边不要使用++或者--的运算符,会造成不好的后果。
宏定义的函数并不适合定义比较大的函数,宏定义的函数比较适合