c/c++中#号的用法
来源:互联网 发布:延长壳牌西安待遇知乎 编辑:程序博客网 时间:2024/05/17 07:22
第一种情况作为Stringizing Operator(#),暂叫字符串化吧。
#define stringer( x ) printf( #x "\n" ) int main() { stringer( In quotes in the printf function call\n ); stringer( "In quotes when printed to the screen"\n ); stringer( "This: \" prints an escaped double quote" ); }如此的定义在进行处理时将被转换为如下代码:
int main() { printf( "In quotes in the printf function call\n" "\n" ); printf( "\"In quotes when printed to the screen\"\n" "\n" ); printf( "\"This: \\\" prints an escaped double quote\"" "\n" ); }程序运行结果如下:In quotes in the printf function call "In quotes when printed to the screen" "This: \" prints an escaped double quotation mark"第二种情况作为Charizing Operator(#@),就叫字符化吧。
例子:
#define makechar(x) #@xcauses the statement
a = makechar(b);这条语句将被扩展为
a = 'b';注意单引号字符不能使用这样的字符化。
第三种情况作为Token-Pasting Opertor(##),叫做连接符吧,大概是这样的意思。例子:#define paster( n ) printf( "token" #n " = %d", token##n ) int token9 = 9;
如果一个数字作为此宏的参数调用的话,
paster( 9 );
宏被展开为
printf( "token" "9" " = %d", token9 );
进而成为这样的语句:printf( "token9 = %d", token9 );
0 0
- c中 ## 的用法
- c/c++中#号的用法
- c/c++中#号的用法
- [c、c++]宏中"#"和"##"的用法
- [c、c++]宏中"#"和"##"的用法
- C 中 sizeof的用法
- C中“##”符号的用法
- c中static的用法
- c 中 static的用法
- C中static的用法
- c中static的用法
- C中volatile的用法
- c中atexit的用法
- C中union的用法
- C中violatile的用法
- C语言中##的用法
- C语言中 ^的用法
- C中#line的用法
- 在Myeclipse中使用Hibernate反向工程工具——Hibernate Synchronizer
- FFMPEG
- STM32学习笔记3-串口控制台
- 文件操作
- Lua的sleep函数
- c/c++中#号的用法
- C++开源代码项目汇总
- metasploit - encode php backdoor with php/base64
- STL系列(2):Vector 向量容器
- java 堆栈
- linux spi驱动开发学习(三)-----spi_bitbang.c详解
- mongodb
- 中缀表达式求值问题(字符串转换为数学表达式)
- 1.4.8 表空间维护