`
yesjavame
  • 浏览: 688437 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

预编译输出的行标志

阅读更多

调用预编译器cpp预编译main.cpp生成main.i文件:
$cpp main.cpp > main.i
或者:
$gcc -E main.cpp > main.i

生成的行号标志中有如下格式的:
# 1 “/usr/include/features.h” 1 3 4
表示下面的内容是由某个文件的第几行产生的。
但是最后面的几个数字是什么意思?看不出来是什么。

查到的结果是:http://tigcc.ticalc.org/doc/cpp.html

Source file name and line number information is conveyed by lines of the form

# linenum filename flags

These are called linemarkers. They are inserted as needed into the output (but never within a string or character constant). They mean that the following line originated in file filename at line linenum. filename will never contain any non-printing characters; they are replaced with octal escape sequences.

After the file name comes zero or more flags, which are 1, 2, 3, or 4. If there are multiple flags, spaces separate them. Here is what the flags mean:

1 This indicates the start of a new file.
2 This indicates returning to a file (after having included another file).
3 This indicates that the following text comes from a system header file, so certain warnings should be suppressed.
4 This indicates that the following text should be treated as being wrapped in an implicit extern "C" block.

分享到:
评论

相关推荐

    编译原理词法分析C语言实现实验报告(含源码)

    词法分析器需处理输入的源程序字符串,以'#'字符作为结束标志,并输出单词符号的二元组,结果保存至磁盘文件,同时具备错误处理功能。 二、系统分析 词法分析器依据正则文法进行工作。这里,我们有三个主要的正则...

    编译原理课程设计报告

    ##### 1.2 编译程序的输出结果 - **词法分析后的二元式序列**:由种别码和属性值组成的序列,用于表示源代码中的单词符号。 - **变量名表**:记录程序中所有变量名称的列表。 - **状态栈分析过程显示**:展示语法...

    从github上找出来在C环境下完成编译的代码

    在GitHub上找到的这个项目,已经通过了编译检查,意味着所有源代码文件在编译时没有遇到错误,这通常是项目质量的重要标志。 编译过程通常包括以下步骤: 1. **预处理**:这是编译的第一步,由预处理器(cpp)完成...

    linux下GCC编译C程序

    首先,使用`-c`标志分别编译每个源文件生成目标文件,如`message.o`和`main.o`。然后,使用`gcc`的连接功能将这些目标文件合并成可执行文件: ```bash gcc -o goodbye message.o main.o ``` 或者,可以直接...

    XCODE 编译选项.

    预处理器宏在编译阶段进行替换,可以实现条件编译。例如,开发者可以定义`DEBUG`宏来区分Debug和Release模式,以便在Debug模式下开启额外的日志输出。在项目设置中,可以定义或修改预处理器宏。 五、代码警告 Xcode...

    VC6中编译参数设置

    - `/nologo`:抑制编译器的启动标志,防止在输出窗口显示版权信息。 - `/MDd`:选择多线程调试DLL版本的运行时库。 - `/W3`:启用级别3的警告,捕获更多潜在的编程错误。 - `/Gm`:启用最小重新编译,提高增量...

    计算机编译原理课程设计报告

    词法分析器,也称为扫描器,按照预定义的词法规则(通常使用正则表达式表示)来逐个扫描源程序的字符流。它将字符序列转换成二元式,二元式包含单词的类别和对应的属性值。例如,在C语言的词法分析中,"main()"会被...

    编译原理—— 词法分析器

    当识别到一个词法单元后,这个单元会被添加到输出队列,供后续的语法分析阶段使用。 5. **错误处理**:如果遇到无法解析的字符序列,词法分析器需要报告错误。在C语言中,这可能通过设置错误标志、打印错误消息或抛...

    编译原理实验报告 Sample语言

    2. 识别单词:根据正则文法规则判断单词类型,并输出单词和对应的类别码。 3. 过滤无用信息:去除空格、回车和注释,只保留有意义的符号。 4. 错误处理与符号管理:当遇到错误或需要特殊处理的情况时,调用相应的...

    编译原理课程设计

    这个过程通过嵌套的循环实现,直到遇到换行符`\n`,表示结束一行的词法分析。 识别到的符号会被存储到`token_PL`中,然后在主函数中输出。在输出过程中,程序会检查是否有未匹配的右括号,以确保语法的正确性。`RLP...

    c语言程序设计谭浩强格式输入输出PPT课件.pptx

    `#include "stdio.h"`或`#include <stdio.h>`是预编译指令,告诉编译器使用这个头文件。 `printf()`函数是C语言中用于格式化输出的主要工具,它的基本形式是`printf("<格式化字符串>", <参量表>)`。格式化字符串由...

    最新驱动WDK7600在VC6.0下的编译开发配置环境

    - 填写C/C++选项,包括编译器标志、预处理器定义等。 - 填写Link选项,指定链接器的行为,如输出文件名、基地址等。 - **编译测试**:完成配置后,创建一个简单的驱动程序源文件,并尝试编译。如果编译通过,则...

    cpp-MXNet交通标志识别手把手实践教程

    预训练模型如VGG、ResNet等可以作为起点,通过微调适应交通标志识别任务。 3. **加载预训练模型**:如果你已经有预训练的模型权重,可以通过`ndarray::Load()`函数加载。这一步骤通常用于避免从头开始训练,以减少...

    Live555 vs2017编译配置

    4. **编译选项**:Live555的编译可能需要特定的编译标志,例如针对RTSP或RTP的支持。在VS2017中,这些可以通过右键点击项目 -> 属性 -> C/C++ -> 预处理器来设置。 5. **链接库**:Live555可能会依赖一些系统库或第...

    Oracle ProC 编程入门.doc

    - **编译过程举例**:通常,预编译命令会包含`proc`,指定输入源文件、输出文件以及预编译选项。 - **Oracle预编译选项配置文件**:可以使用配置文件(如`pcscfg.cfg`)来设定预编译器的行为,比如选择数据库版本...

    编译原理实验报告——词法分析器

    在此过程中,识别出的每个单词都会被分类并转化为二元组形式,然后写入到指定的输出文件中。 2. **单词符号对应种别码** 实验中定义了一个种别码表,用于标识不同的单词类型,例如标识符、保留字、运算符等。种别...

    试谈Linux环境下程序编译(ppt-34页).ppt

    GCC是一个功能强大的跨平台编译器,由GNU项目开发,是其标志性成果之一。它能够处理各种类型的源代码、汇编代码以及目标代码,生成可执行文件。在Linux系统中,可执行文件并不需要特定的后缀,但GCC通过文件的后缀来...

    80C51的pwm输出代码

    当定时器计数值达到预设值时,其对应的中断标志位会被置位,然后可以通过中断服务程序来切换输出引脚的电平状态,从而实现PWM。 - 方式2:在这种模式下,定时器的初值由TMOD寄存器中的M1和M0位决定,自动重装载8位计...

Global site tag (gtag.js) - Google Analytics