首页 > 编程语言 >C++中#和##

C++中#和##

时间:2022-10-26 00:44:18浏览次数:43  
标签:子串 定义 ## C++ 参数 EXP

转自:https://blog.csdn.net/YhL_Leo/article/details/48879093

1.介绍 

C/C++ 的宏中, 

  • #的功能是将其后面的宏参数进行字符串化操作;
  • ## 功能是在带参数的宏定义中将两个子串联接起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。 

凡是宏定义里有用###的地方宏参数是不会再展开,

#include <iostream>
using namespace std;

#define WARN_IF(EXP) if(EXP) cerr << #EXP << endl;
#define paster( n ) cout << "token" << #n << " = " << n << endl;
#define _CONS(a, b) int(a##+##b)
#define _STRI(s) #s

int main()
{
    int div = 0;
    WARN_IF(div == 0);           // prints : div == 0
    paster(9);                   // prints : token9 = 9
    // cout << _CONS(1, 2) << endl;     // pasting "1" and "+" does not give a valid preprocessing token
    cout << _STRI(INT_MAX) << endl;  // prints : INT_MAX
    return 0;
}

输出:

div == 0
token9 = 9
INT_MAX

  

标签:子串,定义,##,C++,参数,EXP
From: https://www.cnblogs.com/BlueBlueSea/p/16826954.html

相关文章

  • Dynamic Web Project项目中实现.jsp文件之间的跳转
    对这部分知识不太熟悉,特地发出来记录一下 以之前发布的增删改查中主界面跳转到add.jsp文件为例具体实现代码如下<buttontype="submit"value="add"onclick="window.......
  • 【Java技术总结】Spring事务失效总结
    事务方法必须是public,private、protected、default都会失效。@ServicepublicclassUserService{@Transactionalprivatevoidadd(UserModeluserModel){......
  • 内网安全之:域与域权限判断
    目录1域控基础1.1活动目录1.2域中的计算机分类1.3域内权限解读2收集当前域信息2.1获取当前用户与域SID2.2查询指定用户的详细信息2.3判断是否存在域2.4查找域控......
  • 《将博客搬至CSDN》Docker中浏览器访问内网,并解决无中文字体问题
    需求说明在自己的本地服务器中部署了很多应用,使用内网穿透访问,但能够使用的端口有限,一个一个映射也不实际,所以想到使用docker部署一个firefox浏览器来访问内网的网页。......
  • 关于gets()函数 error: 'gets' was not declared in this scope; did you mean 'fgets
    关于gets函数有一段时间没有写算法了,今天重新写一道已经AC的题发现不通过。发现如下报错:error:'gets'wasnotdeclaredinthisscope;didyoumean'fgets'?也就是说......
  • 独立云网关
    功能特点SG-WLAN-4G是一款可实现一主多从,搭配多种接口的集成设备,可通过本地串口或LAN口采集用户数据,将数据通过WAN口或4G形式上传至本地ModbusTCP主站及远端服......
  • ODOO配置属性
    2字段的属性2.1隐藏字段<fieldname='model_name'invisible="True"/>2.2条件下隐藏<fieldname='model_name'attrs="{'invisible':[('mdoel_name'),'=','1']}"......
  • GPU高性能编程CUDA实战 电子书 pdf
    作者:JasonSanders/EdwardKandrot出版社:机械工业出版社原作名:CUDAbyExample:anIntroductiontoGeneral-PurposeGPUProgramming 链接:GPU高性能编程CUDA......
  • 多日Java小结
    今天已经是学习Java的第12天了,但是总觉得自己的进度真的很慢,现在还没学到循环,但是感觉前面的知识依然还没有消化,所以先小结一下吧。 首先,记住了Java的基本格式,publicst......
  • 6. Z字形变换
    将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行 Z字形排列。比如输入字符串为"PAYPALISHIRING" 行数为3时,排列如下:PAHNAPLSIIGY......