C++替代宏的功能实现的方法

在C++中,对于替代宏的功能实现,我们通常见到的有三种方法:
1.常量用const来替代实现
类似于#define A 10,是在程序的预编译期将所有的A用常量10替换掉,如果我们不想使用宏,就可以用const int A=10替换之前的用法,这一步将会在程序编译过程中将所有的A置为常量10,以此达到我们想要的目的。
2.有参宏函数用inline(内联函数)来替换实现
宏其实是在预编译时期进行了代码的替换,其实就是把的所有的相关的地方替换上了所对应的代码,然后再进行编译。而我们要想达到这样的目的,可以使用内联函数,内联函数的代码本质是放在符号表中的,在要使用的时候进行替换,执行效率和宏定义本质是一样的,内联函数是编译器首先在函数调用处使用函数体本身语句替换了函数调用语句,然后编译替换后的代码。
3.类型用typedef替换实现
在宏中,我们一般会这样使用#define E int,在预编译期时编译期会将E简单替换成int,如果要达到该目的,我们可以采用typedef int E;这一语句来实现,但是二者还是有一定差别,对于宏来说,是在预编译期对于出现的合适的字符进行简单替换而不作正确性检查,只有在程序编译期才做检查,而typedef不是简单替换 ,而是采用如同定义变量的方法那样来声明一种类型,如果定义出错,则会直接报错。

猜你喜欢

转载自blog.csdn.net/pretysunshine/article/details/82414210