#define 的特别用法
来源:互联网 发布:ubuntu最新稳定版本 编辑:程序博客网 时间:2024/04/20 00:50
在分析u-boot源码发现这样的宏:
/*
* Macros to transform values
* into environment strings.
*/
#define XMK_STR(x) #x
#define MK_STR(x) XMK_STR(x)
从注释来看是把x转换成字符串。
找到了相关的资料,解读了这个define,还顺便认识了另外两个不常用的define
#define Conn(x,y) x##y
#define ToChar(x) #@x
#define ToString(x) #x
x##y表示什么?表示x连接y,举例说:
int n = Conn(123,456); 结果就是n=123456;
char* str = Conn("asdf", "adf")结果就是 str = "asdfadf";
怎么样,很神奇吧
再来看#@x,其实就是给x加上单引号,结果返回是一个const char。举例说:
char a = ToChar(1);结果就是a='1';
做个越界试验char a = ToChar(123);结果是a='3';
但是如果你的参数超过四个字符,编译器就给给你报错了!error C2015: too many characters in constant :P
最后看看#x,估计你也明白了,他是给x加双引号
char* str = ToString(123132);就成了str="123132";
- #define 的特别用法
- #define的特别用法 ,##和#@还有# 的意思
- define的作用,指针特别注意
- NULL的特别用法
- [define的用法]define用法集锦
- #define 的注意用法
- #define 的另类用法
- #define的用法zz
- #define的用法
- define 的用法
- #define的用法
- #define 的用法
- #define的用法归类
- define的用法
- #define的神秘用法
- #define的神秘用法
- #define的用法
- #define的用法
- 将 BDF 格式转换为 PCF 格式
- 如何做站让大站也来采集小站信息
- 技术交流群 网络峰岭 QQ群号 54295014
- wasce 中配置 LDAP Viewer
- 常见SQL分页
- #define 的特别用法
- [情感]“等女”们要准备好自己的备胎
- javascript C# loading
- 文件名批量重命名、文件后缀名批量重命名
- 真正的 用JS 做的 loading
- 家庭影院.液晶电视.液晶电视连接电脑全功略续
- 创意搜狗输入法设计理念
- Access导入SQL2005方法
- python天天进步(1)--sys.argv[]用法