代码改变世界

宏与vector去重

2018-11-27 11:23  X光之辉  阅读(283)  评论(0)    收藏  举报

一。VS中添加预处理宏的方法:

除了在.c及.h中添加宏定义之外,还可以采用如下方法添加宏定义:

1、若只需要定义一个宏(如#define DEBUG),可以右键点击工程-->属性-->c/c++-->预处理器-->预处理器定义,点击下拉框中的编辑,输入想要定义的宏;

2、如果还需要定义宏的内容(如#define inline __inline),可以右键点击工程-->属性-->c/c++-->命令行,在其它选项中输入如下内容: /D"inline"=__inline 。

二。带参数的宏定义:

#define  max(A,B)  ((A) > (B) ? (A) : (B))

被替换后的语句: x=max(p+q, r+s);

被替换后的形式 : x=((p+q) > (r+s) ? (p+q) : (r+s));

     如果对各种类型的参数的处理是一致的,则可以将同一个宏定义应用于任何数据类型,则无需针对不同的数据类型需要定义不同的max函数。 但是max存在一定的缺陷。作为参数的表达式需要计算两次,如果表达式存在副作用(比如含自增运算符或输入/输出),则会出现不正确的情况。例如:

max(i++, j++) //错误

。。。

--------------------- 引用自https://blog.csdn.net/GUI1259802368/article/details/79466818

三:使用宏定义的函数:

 

//注释了并不是不能用而是功能用不到这段代码