找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3038|回复: 0

【C】C宏定义

[复制链接]
发表于 2014-12-8 18:07:40 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
宏定义中会出现#xxx ,A###B,以及微软独自特有的#@xxx。分别解释。

1 define SB(x) #x
它的作用是把输入的东西转换为字符串
string str = SB(123);

2 define BB(x) UXX##x
这个是个符号连接的作用,把UXX(随意的跟符号x连接成一个新的符号,这里说的符号就是变量的意思
int BB(1);
U1 = 100;

3 define CB(x) #@x
作用会是把x的最后一个字符转换成字符,这个是Windows独有的。
char b = CB(14c2);

最最终的实例程序如下:
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <stdio.h>
  5. using namespace std;

  6. #define H1 12\
  7. 3

  8. #define SB(x) #x        //translate to a string
  9. #define BB(x) U##x  //produce a new symbol
  10. #define CB(x) #@x        //make the last to a char

  11. void main()
  12. {
  13.         int x = H1;
  14.         //cout<<x<<endl;
  15.         ofstream fout("1.txt");
  16.         fout<<x<<endl;
  17.         fout<<"1234"<<endl;

  18.         fout.close();
  19.         FILE* fp = fopen("2.txt","w");
  20.         fwrite(&x,4,1,fp);
  21.         fprintf(fp,"%d",x);
  22.         fclose(fp);
  23.         string str = SB(123);
  24.         std::cout<<str<<endl;
  25.         int BB(1);
  26.         U1 = 100;
  27.         cout<<U1<<endl;

  28.         char b = CB(14c2);

  29. }
复制代码

本帖被以下淘专辑推荐:

回复

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-22 19:30 , Processed in 0.032544 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表