美文网首页C/C++编程
c++宏定义中的#和##

c++宏定义中的#和##

作者: 雨幻逐光 | 来源:发表于2018-10-23 10:34 被阅读0次

宏定义中,#:它是一个指示符,指示其后面的变量名替换变成一个字符串。##:它是一个连接符,表示它和他后面的变量名合并在一起。
下面举个例子来说明:

#include <iostream>
using namespace std;

#define PrintVar(v, index) cout << #v#index " is " << v##index << endl;

int main()
{
    int i1 = 9, i2 = 2, i3 = 3;
    PrintVar(i, 1);
    PrintVar(i, 2);
    PrintVar(i, 3);
//    PrintVar(i, 4);
    return 0;
}

运行上述代码,结果如下:

i1 is 9
i2 is 2
i3 is 3
Program ended with exit code: 0

如果把PrintVar(i, 4);反注释掉,则无法通过编译器:
因为使用了未定义的 i4 变量。

相关文章

  • c++宏定义中的#和##

    宏定义中,#:它是一个指示符,指示其后面的变量名替换变成一个字符串。##:它是一个连接符,表示它和他后面的变量名合...

  • 深入理解C++11 2.5 static_assert

    在C++中,标准在或者 头文件中未程序员提供了assert宏,例如: C++中,可以通过定义宏N...

  • c++基础(宏)

    有关 c++ 中宏的定义以及使用是今天的重点内容。 C++ 的宏定义将一个标识符定义为一个字符串,源程序中的该标识...

  • extern "C"和函数异常的宏定义(c vs c++)

    这是libev中来自ev.h的一段宏定义 c++中函数定义中的throw():

  • c++技巧

    使用c/c++宏进行编程 c/c++中宏的是在预处理的过程中进行展开,可以用来进行函数的声明和定义. 在阅读lib...

  • C++中的内联函数

    1、常量与宏回顾 C++中的const常量可以替代宏常数定义,如: const int A = 3; <===>...

  • 虚幻引擎4-UE4 C++ UFUNCTION 宏 参数解析

    虚幻引擎c++中定义了许多宏,如UCLASS(),UPROPERTY(),UFUNCTION(),USTRUCT(...

  • project_icrane

    icrane项目中学到的小知识点 一 c++中 DEBUG宏定义 使用宏定义可以方便的更改打印方式和格式。比如在q...

  • 六、C++ 内联函数分析

    1、常量与宏 C++中的const常量可以替代宏常数定义: 我们还可以利用宏来定义宏代码片段: 但是宏代码块不是函...

  • 常见源码中的宏定义

    1._ _cplusplus 、extern "c" { }_ _cplusplus 是c++中特有的宏定义,在我...

网友评论

    本文标题:c++宏定义中的#和##

    本文链接:https://www.haomeiwen.com/subject/hveozftx.html