宏定义的妙用

使用宏定义转字符串字符以及连接

宏替换是在语法分析前进行的,对于变量是不能做到的。这点要注意。

#define ToChar(x) #@x   //x加上''
#define Conn(x, y) x##y //连接x,y 对比strcat()函数
#define ToString(x) #x  //x加上"" 对比itoa()函数

#include <iostream>
#include <stdlib.h>

using namespace std;

int main(){

    /*Conn(x, y)*/
    int iNum1 = Conn(12, 34);         //数字
    char *str1 = Conn("12", "23");    //字符串

    /*ToChar(x)*/
    char chNum = ToChar(2);           //数字转字符
    //char chCharacter = ToChar('q');   //这样不对 , 字符外面不能加‘’

    /*ToString(x)*/
    char *strNum = ToString(1234);    //数字转字符串

    cout << strlen (strNum) << endl;
    cout << iNum1 << endl;           //输出连接后的数字
    cout << str1 << endl;            //输出连接后的字符串
    cout << chNum << endl;           //输出数字转字符 
    //cout << chCharacter << endl;     //输出字符转字符 
    cout << strNum << endl;          //输出数字转字符串
    system ("pause");
    return 0;
}


你可能感兴趣的:(宏定义的妙用)