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


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

    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 }

     执行:

  • 相关阅读:
    andriod获得textView的值设置textView的text
    Android 自动生成的R类
    andriod 启动日历
    ggplot2在一幅图上画两条曲线
    R语言中动态安装库
    Python中的动态类
    Python中将dict转换为kwargs
    Apache负载均衡
    Python codecs小Tips
    Matlab求三重积分
  • 原文地址:https://www.cnblogs.com/xudong-bupt/p/6658228.html
Copyright © 2020-2023  润新知