首页 > 其他分享 >宏补充(#与##篇)

宏补充(#与##篇)

时间:2023-05-28 11:57:38浏览次数:29  
标签:## aanbb 补充 add str printf define

#:预处理指令宏剥离用

##:预处理指令宏粘合使用

先谈谈#

#define str(n)  n
#define str(n) aanbb//无法实现
#define str(n) "aanbb"//只能输出字符串“aanbb”,无法达到预期目的
#define str(n) "aa"#n"bb"//将n剥离出来,利用了相邻字符串会合并为一个字符串的原理

然后是##

//#define x(n) xn
#define x(n)   x##n//粘合形成新变量
//#define add(a,b) aa+bb//没用
#define add(a,b) a##a+b##b//起到粘合剂作用
#include<stdio.h>
int main() {
    int x(1) = 2;
    int x(2) = 3;
    printf("%d\n", x1);
    printf("%d\n", x2);
    printf("%d\n", add(1,2));//实际变为11+22
    return 0;
}

 

标签:##,aanbb,补充,add,str,printf,define
From: https://www.cnblogs.com/alexlance/p/17438015.html

相关文章

  • return
    packagecom.karl2;publicclassreturnDemo{publicstaticvoidmain(String[]args){System.out.println("程序开始");chu(10,5);System.out.println("程序结束");}publicstaticvoidchu(inta,intb){......
  • hash碰撞
    一、md51.实例1d131dd02c5e6eec4693d9a0698aff95c2fcab50712467eab4004583eb8fb7f8955ad340609f4b30283e4888325f1415a085125e8f7cdc99fd91dbd7280373c5bd8823e3156348f5bae6dacd436c919c6dd53e23487da03fd02396306d248cda0e99f33420f577ee8ce54b67080280d1ec69821bcb6a8839396......
  • 原码和补码
    原码和补码1.原码原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值[+1]原=00000001[-1]原=10000001第一位是符号位.因为第一位是符号位,所以8位二进制数的取值范围就是:[11111111,01111111],即[-127,127]2.补码补码的表示方法是:正数的补码......
  • 类与对象的一些掌握事项
    packagecom.ST;publicclassTest1{//类与对象的一些掌握事项//1.类名建议用英文单词,首字母大写,满足驼峰模式,且要有意义//2.类中定义的变量也称为成员变量(对象的属性),类中定义的方法也称为成员方法(对象发行为)//3.成员变量本身存在默认值,同学们定义成员变......
  • String验证码案例
    packagecom.String;importjava.util.Random;publicclassSrtingDemo2{//验证码publicstaticvoidmain(String[]args){System.out.println(createCode(4));System.out.println(createCode(6));}//设计一个方法,返回指定位数的......
  • post和get注入
      ......
  • String使用时的几个注意事项
    packagecom.String;publicclassSrtingDemo1{publicstaticvoidmain(String[]args){//String使用时的几个注意事项//1.String的对象是不可变的Stringname="黑马";name+="程序员";name+="波妞";......
  • MKVToolNix工具批量修改MKV文件信息
    1.需求:有一部港剧,50集,mkv格式,国语和粤语双音轨,原文件默认播放国语音轨,现在要批量设置粤语为默认播放音轨,同时给视频轨道设置语言为中文。如果使用图形界面手动修改,则需要大量时间,现在寻求使用MKVToolNix的命令行工具,来进行批量操作,命令行工具mkvpropedit官方说明链接:https://mkvto......
  • 快速熟悉String提供的处理字符串的常用方法
    packagecom.String;publicclassStringDemo{publicstaticvoidmain(String[]args){//快速熟悉String提供的处理字符串的常用方法Strings="黑马java";//1.获取字符串长度System.out.println(s.length());//2.提取字......
  • String案例
    packagecom.String;importjava.util.Scanner;publicclassuserDemo{publicstaticvoidmain(String[]args){for(inti=0;i<3;i++){Scannersc=newScanner(System.in);System.out.println("请您输入登录名称:");......