##与#
来源:互联网 发布:三星s7e怎么与mac连接 编辑:程序博客网 时间:2024/04/26 08:02
宏定义里面有个##和字符串的关系,
有哪位能帮我讲解一下?
---------------------------------------------------------------
#include <stdio.h>
#define CAT(x, y) x##y //将x,y连接起来形成"xy"的形式
void main()
{
printf("%s", CAT("hello", " world"));
}
---------------------------------------------------------------
出现在宏定义中的##是用来告诉编译器,将两个字符串系在一起。
---------------------------------------------------------------
一个#代表将一个宏参数转变为一个string ,例如
#include<stdio.h>
#define stringer( x ) printf( #x "/n" )
void main()
{
stringer( haha );
}
这里的这个#将x转化为一个string
这个宏就是要将x传进来的东西打印到屏幕上
---------------------------------------------------------------
只有一个是将其变为字符串
#include <stdio.h>
#define TRACE(x) printf(#x" is: %d/n", x)
void main(void)
{
int i=3;
TRACE(i);
}
- 与
- 与
- “” 与 “”
- ##与#
- >> 与 > >
- :与::
- &与&&
- && 与 &
- [[与((
- >>与>>>
- *与++
- *与++
- ++与++
- ->与 .
- :与::
- & | 与&& ||
- &&与&
- $() 与 ``
- extern "C"
- 转贴:深入浅出之正则表达式
- Delphi快速入门(三)
- 我在新浪的博客:blog.sina.com.cn/expectoneday
- 迷茫中一年又一年
- ##与#
- 带引用计数以及就地构造功能的智能指针
- 一些计算几何
- 使用Struts2 AJAX TAG的 formFilter标签
- 自己修复 CSDN 博客的代码高亮问题
- JPA是什么
- java.lang.Math类中round()和floor()区别
- Style Guide for wxPython code
- 整理关于java的String类,equals函数和比较操作符的区别