`
jubincn
  • 浏览: 242765 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
文章分类
社区版块
存档分类
最新评论

gcc预处理注释后会留下空白

 
阅读更多

本文是《C和指针》的2.7中的第5题的gcc解


题目:下面这条语句的结果是什么?

int x/*comment*/y;


首先,创建一个包含此语句的C文件,如:


其次,使用gcc -E tmp.c来查看预处理后的文件

出来的结果很长,前面有很大一段代码,我们直接看最后那部分,如下所示:


看来,gcc的预处理器将注释用空白替换。我想之所以这样做是因为人们将注释看作x与y的分隔声明的可能性更大。

分享到:
评论

相关推荐

    编译原理 实验一 (去掉空格 回车 注释)

    在"WindowsApplication输出与预处理"这个文件中,我们可以推测这是在Windows环境下进行的一个实验,可能涉及到了使用命令行工具如GCC或CL编译器来处理C或C++源代码,并观察预处理后的输出结果。通过对比原始源代码和...

    doxygen_manual-1.8.2

    - **成员后的文档**:Doxygen还允许在成员声明后添加文档注释。 - **示例**:文档中提供了具体的例子来说明如何使用这些注释块。 - **其他位置的文档**:除了成员声明前后的注释外,还可以在其他地方添加注释,如...

    GNU Assembler, GNU Tools for ARM Embedded Processors

    在语法部分,文档可能详细解释了汇编语言的预处理指令、空白字符的使用、注释的格式以及符号、语句和常量的定义。这些内容对于理解汇编语言的结构和编写有效的汇编代码非常重要。字符常量、字符串、字符、整数、大数...

    源代码的转换、加载与运行(系统阐述源代码是怎样再计算机中变为可以执行的程序)

    3. **去注释**:移除或转换注释,将它们变成空白字符,不影响后续处理。 预处理后的中间文件`main.i`被传递给编译器(如`cc1`),进行编译阶段。编译器负责以下工作: 1. **词法分析**:将源代码分解成一个个叫做...

    语法高亮转换软件 编译原理 课程设计报告

    - 之后,对预处理后的代码进行词法分析,识别并生成HTML代码,达到高亮显示的目的。 这个课程设计项目不仅要求学生掌握基本的编译原理,还涉及到实际的编程技巧,包括词法分析工具的使用、HTML和CSS的应用,以及...

    词法分析程序

    注释通常在预处理阶段被处理,但在词法分析阶段也可能涉及。 3. **识别关键字**:查找并识别编程语言中的关键字,如C++中的`int`、`if`、`else`等。 4. **标识符识别**:识别出由字母、数字和下划线组成的标识符,...

    gnu assembler

    在语法方面,手册涵盖了预处理、空白字符、注释、符号、语句、常数等话题。例如,符号包括标签、赋予符号其他值、符号命名规则等;常数又分为字符常数和数字常数,其中字符常数包括字符串和字符本身,而数字常数包括...

    Makefile基础知识学习 很好 肯定能学会

    make执行完成后会返回一个退出码,表示执行状态。 **二、指定Makefile** 可以通过`make -f <filename>`指定要使用的Makefile文件。 **三、指定目标** 默认情况下,make会构建Makefile中的第一个目标。也可以通过...

    C语言基础-开发环境及流程演示文稿

    - `<stdio.h>` 文件中包含了`printf` 和 `getchar` 等函数的声明,通过`#include <stdio.h>` 将其包含进来后,就可以在程序中使用这些函数了。 - 注意:预处理器指令必须以`#`开头,且必须是所在行的第一个非空白...

    跟我一起学makefile.pd

    5. **注释**:以`#`开头的行。 ##### 二、Makefile的文件名 默认情况下,make会寻找名为`Makefile`或`makefile`的文件。可以通过命令行参数指定其他文件名。 ##### 三、引用其它的Makefile 可以使用`include`...

    跟我学写Makefile

    - `strip`:移除字符串中的空白字符。 - `findstring`:查找字符串中是否包含另一个字符串。 - `filter`:过滤字符串列表中的元素。 - `filter-out`:从字符串列表中排除某些元素。 - `sort`:对字符串列表进行...

    跟我一起写Makefile

    - **注释**:以 `#` 开头的行被视为注释。 ##### 2\. Makefile 的文件名 通常,Makefile 文件的名字是 `Makefile` 或者 `makefile`。在没有指定文件名的情况下,make 会查找名为 `Makefile` 的文件。 ##### 3\. ...

    《你必须知道的495个C语言问题》

    《你必须知道的495个C语言问题》的出版填补了这一空白。许多知识点的阐述都是其他资料中所没有的,弥足珍贵。 涵盖C99标准 目录 ~第1章 声明和初始化 1 基本类型 1 1.1 我该如何决定使用哪种整数类型? 1  ...

    你必须知道的495个C语言问题

    2.13 为什么我的编译器在结构中留下了空洞?这导致空间浪费而且无法与外部数据文件进行“二进制”读写。能否关掉填充,或者控制结构域的对齐方式? 2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有...

    C语言FAQ 常见问题列表

    o 3.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外部数据文件进行 "二进制" 读写。能否关掉填充, 或者控制结构域的对齐方式? o 3.11 为什么 sizeof 返回的值大于结构的期望值, 是不是尾部有填充? ...

    你必须知道的495个C语言问题(PDF)

    2.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外 部数据文件进行”二进制” 读写。能否关掉填充, 或者控制结构域 的对齐方式? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.11...

Global site tag (gtag.js) - Google Analytics