共性:都以#开头
目录
一、宏定义
特性:
1)实现函数功能,比函数效率更高。
1.#define怎么将多个常量字符串连接起来
https://blog.csdn.net/baowxz/article/details/99678718
使用空格或者""
隔开
2.#与##
https://blog.csdn.net/u012351051/article/details/101038899/
https://www.jb51.net/article/245053.htm
-
运算符用于在预处理期将宏参数转换为字符串
-
运算符用于在预处理期粘连两个标识符
3.系统预定义调试宏
https://blog.csdn.net/u013171226/article/details/107680392
4.系统特殊宏
https://blog.csdn.net/CSDNjoker/article/details/127857328
https://blog.csdn.net/tjcwt2011/article/details/132217047 (干脆利落)
-
可变参数宏
__VA_ARGS__
,用于打印日志。 -
CRYPTO_ALIGN (字节对齐)
5.判断宏的值
#if ( LOCK == 1 )
cout<<"lock demo"<<endl;
pthread_mutex_init(&m_Lock, NULL);
#else
cout<<"unlock demo"<<endl;
#endif
二、文件包含
1)include 指令不关心所包含的文件名是啥,只是原方不动地将所包含的文件内容在此处展开。
2)在头文件中的内容是什么都可以,未必一定要是函数声明,你愿意的话完全可以把函数定义在头文件中,而且也可以不用.h 作为文件名。来
- 双引号与尖括号引用的区别
使用尖括号,系统就会到默认路径下去搜索该头文件。搜索到头文件后,找到其中被调函数的声明,再到另一默认文件中找该函数体的实现。
三、条件编译
特殊用法
四、pragma (编译器控制指令)
https://www.cnblogs.com/libolin/p/8084362.html
https://cloud.tencent.com/developer/article/2306409
1.字节对齐(#pragma pack)
https://www.cnblogs.com/southcyy/p/10175163.html
https://www.cnblogs.com/The-explosion/articles/17784923.html
判断本文件是否是cpp源文件
__cplusplus
0 条评论