宏在c++中的使用方式
·
最近面试别人,总是喜欢问的一个问题,宏在C++中有多少种用法。用来考查对方的知识面以及对C++工程的熟悉程度。
有时候想想,自己的了解也许也并不全面,所以趁机会好好总结总结。
总结起来就两点:条件编译、定义常量和函数。
1。 防止头文件被重复包含。这是宏在条件编译中发挥的作用。
2。 定义常量。这已经被const 类型的变量所代替了。
3。 定义函数。用宏定义函数,需要非常小心,因为它是被编译器按文字展开的,因此需要特别注意它的易误读性,该加的括号一定要加,同时要避免在宏函数里面定义变量。万一变量和外面的变量名字相同,将会引起非常怪异难以debug的错误。
4。 使用编译器内置的宏。例如__LINE__,__FILE__是编译器内置的用于记录被编译文件的一些常用信息的宏。
5。 条件编译。make release 和make debug的时候,区别就在于程序里面有被这样语句对包含的程序段:#ifdef DEBUG #endif 和 #ifdef RELEASE #endif。
6。注释掉一大段代码。#if 0永远为false,#if 1永远为真。所以可以用#if 0和#if 1作为开关来注释和打开一段代码。
更多推荐
所有评论(0)