美文网首页
gcc 预处理

gcc 预处理

作者: 个00个 | 来源:发表于2020-04-16 00:09 被阅读0次

可以使用 -E 指令来预处理 .c 文件

即使预处理一个空文件也会生产一个乱七八糟的东西

# empty.c 为一个空的文件
gcc -E empty.c   

[dc2-user@10-255-20-75 lab0]$ cat empty.c 
[dc2-user@10-255-20-75 lab0]$ gcc -E empty.c 
# 1 "empty.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "<command-line>" 2
# 1 "empty.c"
 

这些莫名奇妙的东西叫做 linemarkers

我自己理解了一下

# 1 "/usr/include/stdc-predef.h" 1 3 4 
// 表示下面的一行 来自 这个文件的第一行
// 1 表示是个新行
// 2 表示要进去一个新的文件了
// 3 表示来自于系统头,要抑制警告
// 4 表示 下面的内容 包在 extern “C” 中

使用 -P 可以清除 linemarkers
这个东西在某些情况下是方便汇编的。~~~

[dc2-user@10-255-20-75 lab0]$ gcc -E empty.c
# 1 "empty.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "<command-line>" 2
# 1 "empty.c"
[dc2-user@10-255-20-75 lab0]$ gcc -E -P empty.c
[dc2-user@10-255-20-75 lab0]$ 

# 没有这些乱七八糟的东西了

pps 预处理会删除注释

[dc2-user@10-255-20-75 lab0]$ cat mytest.c 
// hehe
main
[dc2-user@10-255-20-75 lab0]$ gcc -E -P mytest.c 
main
[dc2-user@10-255-20-75 lab0]$ 

相关文章

  • 1.准备

    gcc使用 1.gcc编译流程:1)预处理:gcc -E2)编译:gcc -S3)汇编:gcc -c4)链接:没参...

  • C语言数据类型和格式输出总结

    1 编译型和解释型语言的区别 2 gcc -E/-S/-C/-O 参数的意义 gcc -E 预处理:进行预处理g...

  • MDK编译过程及文件类型全解

    C语言编译步骤 1.预处理 gcc -E2.编译 gcc -S3.汇编 gcc -C4....

  • gcc 预处理

    可以使用 -E 指令来预处理 .c 文件 即使预处理一个空文件也会生产一个乱七八糟的东西 这些莫名奇妙的东西叫做 ...

  • C语言入门

    gcc的简单使用 gcc 源自GNU gcc -E hello.c -o hello.i预处理.c文件,处理文件包...

  • GCC编译

    1.1 GCC编译C/C++的四个过程 gcc 是 GUN Compiler Collection的缩写。 预处理...

  • makefile

    makefile 借此机会重新复习下gcc编译条件命令 -E 预处理命令 生成 .i 预处理的原始程序    -...

  • GCC相关编译命令

    编译链接的过程命令 gcc -E hello.c -o hello.i 预处理 gcc -S hello.i -o...

  • 标c-01-基础知识

    总结:gcc编译器 - 预处理,编译,汇编,连接 预处理的指令 - 主要包括:1.include 包括一个文件,一...

  • 程序员自我修养1:GCC构建过程

    示例代码:hello.c 1. 预处理 gcc –E hello.c –o hello.i 预处理过程主要处理源代...

网友评论

      本文标题:gcc 预处理

      本文链接:https://www.haomeiwen.com/subject/uwgkvhtx.html