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

C++ 内置宏定义 与 预编译指令

时间:2017-04-02 10:27:05      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:public   cout   print   .cpp   else   跨平台   时间   灵活   单元测试   

内置宏和预编译指令, 在代码调试、单元测试、跨平台代码中经常会用到。这里记录一下。

1. 内置宏

(文件名,当前行号,当前日期,当前时间,当前执行方法名)

__FILE__
__LINE__
__DATE__
__TIME__

__FUNCTION__

2.预编译指令

可以防止头文件被多次引用

可以方便解决代码跨平台编译问题

可以根据自定义变量灵活执行程序

等等,许多好处

 

效果可以看代码实例:

test.h

 1 #ifndef __TEST_H
 2 #define __TEST_H
 3 
 4 #include <iostream>
 5 
 6 class Test{
 7 public:
 8     Test(int _val){
 9         this->val = _val;
10     }   
11 
12     void print(){
13         std::cout << "the val is " << this->val << std::endl;
14         std::cout << "function:"   << __FUNCTION__ << std::endl;
15         std::cout << "line:"       << __LINE__ << std::endl;
16     }   
17 
18 #ifdef CODE_TEST    //如果定义了CODE_TEST, 则声明为public; 否则为private
19 public:
20 #else
21 private:
22 #endif
23     int val;
24 }; 
25 
26 #endif

main.cpp

 1 #include "test.h"   //test.h使用了预编译
 2 #include "test.h"
 3 
 4 int main(){
 5     Test t(5);
 6     t.print();
 7 
 8     #ifdef CODE_TEST    //如果定义了CODE_TEST, 则会执行下面到代码
 9         std::cout << "t.val = " << t.val << std::endl;
10     #endif
11 
12     return 0;
13 }

 执行:

技术分享

 

C++ 内置宏定义 与 预编译指令

标签:public   cout   print   .cpp   else   跨平台   时间   灵活   单元测试   

原文地址:http://www.cnblogs.com/xudong-bupt/p/6658228.html

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