开发过程中我们常常需要使用宏定义。。 为了尽可能多的使用GCC为我们提供的特性,首先我们需要知道gcc提供了那些特性。。。 gcc -dM -E - < /dev/null 没错,就这么一句话就可以搞定了。。。 ...
查看gcc默认的内置宏定义 或者 helloworld.c为用户随意编写的c测试用例,随意拿个c程序就行。 E 预处理后即停止,不进行编译。预处理后的代码送往标准输出。GCC忽略任何不需要预处理的输入文件。 dM 告诉预处理器输出有效的宏定义列表 预处理结束时仍然有效的宏定义 。该选项需结合 E 选项使用。 打开用户自行设置的宏定义 helloworld.c文件中的宏定义DEBUG如下: 总结: ...
2021-05-11 10:21 0 1290 推荐指数:
开发过程中我们常常需要使用宏定义。。 为了尽可能多的使用GCC为我们提供的特性,首先我们需要知道gcc提供了那些特性。。。 gcc -dM -E - < /dev/null 没错,就这么一句话就可以搞定了。。。 ...
Linux下的GCC编译器内部预宏定义 经常在一些开源的程序中看到一些宏定义,却看不到这些宏定义是在哪些地方定义的,其实有些宏定义是交叉编译工具GCC预定义好的,比如:__GNUC__,__ELF__等等,怎么看到这些宏定义呢,可以采用以下命令来查看: gcc -E -dM ...
一. c /c++语言中使用宏的主要目的主要有 3 个: 1. 提高代码的可读性; 把用到的常量定义成有意义的名字; 2. 无需函数调用,运行效率高; 对于一些简单的操作,无需调用函数,虽然编程是强调模块化,但是函数调用时,需要保护现场和恢复现场。这些都需要耗时。对于复杂的操作 ...
背景 总所周知,代码量稍微大一点的C/C++项目的一些宏定义都会比较复杂,有时候会嵌套多个#if/#else判断分支和一堆#ifdef/#undef让你单看代码的话很难判断出宏定义的具体内容。 如果有一种机制能够帮助我们在构建期间打印出宏的实际内容,就能帮我们更快地捋清楚代码逻辑 ...
今天在看Linux系统编程这本书的代码的时候看到了__GNUC__,不太清楚这个宏所以去查了一下,以此记录。GNU C预定义了一系列的宏,这些宏都是以双下划线开始的,这里只讲一下__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__,其他GNU C的预定义宏 ...
宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。 1.不带参数的宏定义: 宏定义又称为宏代换、宏替换,简称“宏”。 格式: #define 标识符 字符串 其中的标识符就是所谓的符号常量,也称为“宏名”,字符串可以是常数、表达式、格式 ...
下面是对Gcc的内置宏定义的解释: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html https://github.com/gcc-mirror/gcc/blob/master/gcc/config ...
gcc -dM -E - < /dev/null ...