C++(17)-宏

我对宏的理解就是"替换"。关键字:#define
1.#define不带参数的用法
 

#include<stdio.h>
#define M 20
int main()
{
    int a = M;
    int b = 20;
    /*
    编译后变成以下代码
    int a = 20;
    int b = 20;
    */
    printf("%d %d",a,b);
    return 0;
}

2.#define带参数的用法
 

#include <stdio.h>
int sum(int v1, int v2){ return v1 + v2;}
//宏定义
/*
  #define 代表要定义一个宏
  definesum  宏的名称
  (v1,v2)  参数,不要写数据类型
  v1+v2 用于替换的内容
  每个参数加上()
 */
#define definesum(v1,v2) v1+v2
#define CF(v1,v2) (v1)*(v2)
int main(int argc, const char * argv[]) {

    //1.求和 用函数的方式
    int a = 10;
    int b = 5;
    int res = sum(a,b);
    printf("res=%i\n",res); //res=15
    
    //2.使用宏
    int result = definesum(a, b);
    printf("result=%i\n",result); //result=15
      return 0;
}

3.define中的三个特殊符号:#,##,#@**
 

#define Conn(x,y)  x##y
#define ToChar(x)  #@x
#define ToString(x) #x

//1.连接     x##y
int n = Conn(123,456);         //n=123456;
char* str = Conn("asdf", "add")   //str = "asdfadf";
//2.加单引号  #@x
char a = ToChar(1);    // a='1';
//3.加双引号  #x
char* str = ToString(123132);  // str="123132";

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值