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

简介: 内置宏和预编译指令, 在代码调试、单元测试、跨平台代码中经常会用到。这里记录一下。1. 内置宏(文件名,当前行号,当前日期,当前时间,当前执行方法名)__FILE____LINE____DATE____TIME____FUNCTION__2.

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

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 }

 执行:

 

相关文章
|
6月前
|
安全 编译器 C语言
深入理解C/C++预处理器指令#pragma once以及与ifndef的比较
深入理解C/C++预处理器指令#pragma once以及与ifndef的比较
363 0
|
5月前
|
Ubuntu C++ Docker
Docker的基本指令和HTML/PYTHON/C++的简单创建示例
Docker的基本指令和HTML/PYTHON/C++的简单创建示例
|
5月前
|
安全 数据库连接 C++
C++一分钟之-C++中的常量与宏定义
【6月更文挑战第18天】**C++编程中,常量(`const`和`constexpr`)确保值不变,用于配置、计算和逻辑控制。宏定义是预处理阶段的文本替换,适用于条件编译和简化代码。注意`const`的正确使用,避免过度的`const_cast`。宏可能导致命名冲突、副作用和类型安全问题,应谨慎使用。优选类型安全的常量定义,以提升代码质量和可维护性。**
70 5
|
6月前
|
存储 C++
C/C++中的整数除法运算与汇编指令DIV和IDIV
C/C++中的整数除法运算与汇编指令DIV和IDIV
162 1
|
6月前
|
IDE 编译器 C语言
【C++】使用g++指令控制【翻译】各个过程
【C++】使用g++指令控制【翻译】各个过程
|
6月前
|
存储 编译器 程序员
C++中的宏定义和字符串字面值的区别
C++中的宏定义和字符串字面值的区别
|
6月前
|
存储 安全 程序员
C/C++中的整数乘法运算与汇编指令MUL和IMUL
C/C++中的整数乘法运算与汇编指令MUL和IMUL
127 0
|
6月前
|
编译器 C++
C/C++中的逻辑运算与汇编指令的交互
C/C++中的逻辑运算与汇编指令的交互
39 0
|
6月前
|
编译器 程序员 C++
C/C++逻辑与运算与汇编指令的关系
C/C++逻辑与运算与汇编指令的关系
62 0
|
6月前
|
存储 C++
c/c++宏定义(函数)
c/c++宏定义(函数)