码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 宏的使用

时间:2017-06-03 15:02:52      阅读:428      评论:0      收藏:0      [点我收藏+]

标签:括号   程序   system   set   pause   wap   space   cpp   控制   

宏的使用完整代码如下:

macrodemo.h文件:

 1 #pragma once
 2 #ifndef __MACRODEMO__
 3 #define __MACRODEMO__
 4 #include <iostream>
 5 #include <bitset>
 6 using namespace std;
 7 #define __DEBUG__    //(5)
 8 #define MAX 1000     //(1)
 9 #define MAX_FUN(a,b) ((a)<(b)?(b):(a))    //(2)
10 #define SHOW_CODE_LOCATION() cout << __FILE__ <<":" << __LINE__ << ‘\n‘   //(3)
11 
12 #define TEST(bitmap,n) (13 bitmap[n]14 )
15 
16 #define SWAP_INT(a,b) do\        //(4)
17 {18 int temp = a;19 a = b;20 b = temp;21 }while(0)
22 
23 #endif // !__MACRODEMO__

 cpp代码如下:

 1 // MacroDemo.cpp : 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include <iostream>
 6 #include "macrodemo.h"
 7 using namespace std;
 8 
 9 int main()
10 {    
11     cout << MAX << endl;
12 #ifdef __DEBUG__
13     cout << "debug opened:" << endl;
14 #endif // __DEBUG__
15     cout << MAX_FUN(1+3, 2+3) << endl;
16     SHOW_CODE_LOCATION();
17     int i = 1, j = 2;
18     SWAP_INT(i,j);
19     cout << i << "," << j << endl;
20     bitset<30> bs(27);
21     cout << TEST(bs,10) << endl;
22     system("pause");
23     return 0;
24 }

 

 

在头文件中均有标记。

(1) 定义常量,该常量会在预编译期间将所有的MAX 替换为 1000. 但是不建议这样使用。因为该替换发生在预编译期间,不是编译期间。所以这个MAX没有存在在编译的符号表中。一旦出错,那么提示就是一个 1000. 没有任何提示。在effective C++ 中建议使用const 。

(2) 定义函数,这里注意一下,需要将a,b 都用小括号括起来,用来防止给这个函数传入的是表达式。

(3) 用于输出文件名和文件行号。

(4) 可以在define定义中写多行程序,每一行结尾用\, 最后一行除外。注意在定义中,不能有空格,不能有空行。

(5) 可以直接定义一个变量,然后在cpp代码中,通过检测该变量是否存在,来输出调试信息。

 

C++ 宏的使用

标签:括号   程序   system   set   pause   wap   space   cpp   控制   

原文地址:http://www.cnblogs.com/lucy-lizhi/p/6937249.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!