c/c++ 字符串 ## 和 #
来源:互联网 发布:unblockcn mac 编辑:程序博客网 时间:2024/05/18 02:52
1、目前大部分使用的是unicode(win9x只支持ansi),它们之间的转换使用的也比较多;
windows编译器可以使用 L 、_T()、 TEXT()来转换;其中L"xxx"表示使用unicode编译,而_T()、 TEXT()者不管使用ansi还是unicode都是可以编译的;
跟踪后面两者如果是unicode环境最终都是用L来替换的。eg: _T(quote) L##quote
2、由于挺久没有使用##和#了,又忘了差不多了。##是字符串连接符,#的用法是在宏定义中表示后面跟的是字符串
eg1: #define FUN(A, B) (A##B) ,如果传入FUN("123", "345")最终得到“123456”;
eg2: #define FUNC(A, B) (A#B) , 如果传入FUNC("123", 456)最终结果还是“123456”;
但是有个疑问是eg2中define只做了宏展开,所以很自然的把“123”#456;当成一个有效的语句去编译 结果可想而知不行,所以这个中间编译器针对#做了什么?
好奇心的驱使下就就把它预编译文件调出来了看了下,发现是FUNC("123", 456) ;在编译文件中被替换成了"123""456";
3、编译器是默认不会生成对应的预编译文件(.i/.ii(linux c++));
vs2008设置生产预编译文件步骤:
步骤1、项目----配置属性----c/c++----预处理器----将 否 改为 (带行号/(P));
步骤2、项目----配置属性----c/c++----保留注释----将 否 改为 (是/(C));
- [c]c中c串和字符串
- C字符串和C++字符串
- C字符串和C++字符串
- C字符串和C++字符串
- C字符串和C++字符串
- C字符串和C++字符串
- C字符串和C++字符串
- C字符串和C++字符串
- C -- 字符串和字符串函数
- C字符串和C++字符串
- C字符串和C++字符串
- C字符串和C++字符串
- C 和 C++ 字符串
- [C++] 字符串和流
- [C++] 字符串和流
- c/c++ 字符串 ## 和 #
- C数组和字符串
- C 指针和字符串
- MFC控件:listctrl使用方法总结
- java 内部类来将线程 代码隐藏在类中
- android中viewpager,scrollview的嵌套问题
- swift菜鸟入门视频教程-08-枚举
- swift菜鸟入门视频教程-09-类和结构体
- c/c++ 字符串 ## 和 #
- 6、代码整洁之道——对象和数据结构
- 经典问题-数字图像的识别
- 对TS流的一些理解TS流的结构
- Loadrunner编程技巧
- iOS多线程编程
- 关于Spring的69个面试问答——终极列表
- 熊猫烧香病毒实验
- google的xss游戏,过时,蛋疼自己记录