预处理
记录c/c++ 预处理的一些知识
leon.liao
这个作者很懒,什么都没留下…
展开
-
头文件循环引用
说明在C/C++开发中,有时会出现头文件循环引用问题,例如:* 头文件:A.h#include <B.h>class A { B b; };* 头文件:B.h#include <A.h>class B { A a; };原理由于类A需要使用到类B对象,而类B中也需要使用到类A对象,如此声明,头文件循环引用,编译A.cpp或B.cpp时由于文件引用将头文件内容拷贝至引用位置,拷贝后又发现存在头文件引用,因此会持续该行为,由于有循环引用,该行为原创 2020-06-09 20:10:16 · 1791 阅读 · 0 评论 -
特殊宏
__cplusplus当C++和C差别足够大时,编译器为了区分C++和C,会自主判断是否携带该宏,编译器认为是C++语言时会携带该宏,认为是C语言时则不会携带。在C和C++混合开发时为了兼容C,我们也会根据该宏做相应处理。编译器判断测试测试命令与结果:gcc test.c //编译后不带 __cplusplus 宏gcc test.cpp //编译后带 __cplusplus...原创 2020-03-04 19:30:30 · 146 阅读 · 0 评论 -
文件包含
说明C/C++使用include宏来实现文件包含。作用编译是以单个代码文件为单位,文件包含从名称可知,include宏的作用是预处理时将被包含的文件导入被编译单位。原理预处理器处理到include宏时,将被include的文件的所有内容拷贝到当前位置,替换掉include宏。用法先从当前路径查找文件,再到PATH路径查找文件#include "a.h"先从PA...原创 2020-03-04 19:28:02 · 268 阅读 · 0 评论