#define A(x) T_##x
来源:互联网 发布:centos 7 ip配置 nat 编辑:程序博客网 时间:2024/06/10 23:50
stdint.h 简略翻译
宏的单行定义
#define A(x) T_##x
#define B(x) #@x
#define C(x) #x
我们假设:x=1,则有:
A(1)------〉T_1
B(1)------〉'1'
C(1)------〉"1"
几个不常用的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 Dec(x,y) (x-y)
int n = Dec( A(123,1), 1230);
n = Conn(123, Conn(123,332) );
char* str = A("12", ToString( Dec(3,1));
结果会如何呢? 嘿嘿嘿嘿~
- #define A(x) T_##x
- #define STRINGIZE(x) #x
- #define SQR(X) X*X
- #define、#define(x)
- #define random(x) (rand()%(x))
- #define __T(x) L ## x
- #define __T(x) L ## x
- #define s(x) x*x 的计算方法
- #define __builtin_constant_p(x)
- #define sqrt(x) (x*x)与#define sqrt(x) x*x 的区别
- define abs(x) ((x<0)?-(x):(x)) 为何这样写
- #define __T(x) L ## x 语法
- #define __T(x) L ## x 的意义
- 谈谈#define xxxx(x,y) x##y
- #define SQR(x) (x*x) 值的探究
- 取得宏展开#define TO_STRING( x ) TO_STRING1( x ) #define TO_STRING1( x ) #x
- VC #define EC(x) L##x 作用说明
- #define st(x) do { x } while (__LINE__ == -1)
- c语言的灵魂——指针
- LeetCode(85) Maximal Rectangle
- JCL 基础知识--mainframe大型机学习
- QT 5.0.2 SQL
- 客户主数据发布程序(品尝ABAP的味道)
- #define A(x) T_##x
- 数据库架构的演变
- 【安卓笔记】ArrayAdapter删除item注意事项
- 程式实现更改防火墙设置(Win7+VS2010)
- 树状数组
- Win32 获取进程占用的内存信息
- Cursor 用法
- 坚持一年痘痘就没了
- 餐饮行业“去平台化”:建立沟通是关键