在我们阅读c/c++程序的过程中,经常碰到带两个下划线描述的宏,例如__FILE__,__LINE__等
这些都是我们可以在代码中直接使用的宏,下面我将自己知道的常见的一些预定义进行汇总,希望对大家有所帮助。
还要强调一点,我理解的是预定义宏是由编译器来定义的。
查看某个环境下有哪些预定义宏的方法:
- 在linux平台下执行下列两条命令可以查看对应平台下的预定义宏
touch a.h
cpp -dM a.h
结合grep可以在结果中查找对应的预定义宏
常用的预定义宏如下:
- __LINE__:表示行号
- __func__:表示函数名称
- __FILE__:表示源文件名称
- __DATE__:文件被编译的日期
- __TIME__:文件被编译的事件
- __unix__:表示的unix系统
- __arm__:表示32位arm架构,表示的硬件相关的配置
- __aarch64__:表示的是64位arm架构,硬件相关的特性
- WIN32:表示window操作系统
- __x86__:32位x86架构
- __x86_64__:64位x86架构
上面这些只是很常见的一些,也有很多常用的并没有汇总到这里来,写这篇的文章的目的是有一些预定义宏编译器已经帮忙我们定义好了,在我们编写代码的过程中要善于利用这些预定义宏,能够省去我们自己定义的麻烦,而且很多时候我们会自己去定义类似作用的预定义宏,这是没有必要的。