首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

预处理过程:概念及命令行

  • 23-09-22 01:23
  • 4399
  • 7686
blog.csdn.net

本文学习编译器的预处理过程的概念,以及简单的通过命令行进行预处理的过程。Hightec编译器版本是tricore v4.9.1.0。

文章目录

  • 1 预处理过程
  • 2 通过命令行进行预处理
  • 3 总结

1 预处理过程

预处理过程是整个编译过程的第一步。以C语言为例,预处理的输入文件是c文件和h文件,输出文件是i文件。
在这里插入图片描述
在预处理过程中,预处理器(Preprocessor)会分析预处理指令(包括#include头文件和#define宏定义等)以及去除源代码中的注释。

通常来说,编译器会直接将c文件编译成o文件,然后再去交给链接器链接为elf文件。如果希望通过命令行仅仅将c文件预处理成为i文件,只要在命令行中加上-E参数,就可以使编译器在预处理后停止下来,输出预处理后的源文件。

2 通过命令行进行预处理

本章节会通过简单的命令行来对文件进行预处理,并且比较一下输入和输出,对预处理有一个直观的认识。

1)首先,需要准备好源文件和头文件。这里博主偷懒没有自己写,而是直接用了以前Simulink生成的代码。具体可以参照《Simulink代码生成: Embedded Coder配置》这篇博客。
在这里插入图片描述
2)打开demo.c文件,简单看一下其中和预处理有关的元素。
在这里插入图片描述
首先,对于#include包含头文件,会被预处理器读取,并添加到源文件中。如果嵌套包含了头文件,就会一层一层地展开。其次,对于绿色的注释,会被预处理器删除掉。

3)打开命令提示符,切换到c文件和h文件所在的路径,并运行以下指令。

tricore-gcc -E demo.c -o demo.i
  • 1

在这里插入图片描述
然后就会在同一个路径文件夹中生成demo.i文件。
在这里插入图片描述
4)通过Notepad++或者记事本,可以打开这个demo.i文件。可以观察到,rtwtypes.h文件的typedef定义被展开到了源文件中。
在这里插入图片描述
在往下拉,可以看到全局变量和函数的定义。值得注意的是,所有的注释信息全都被抹除了。
在这里插入图片描述

3 总结

预处理过程是编译最开始的过程,也比较好理解。后续博主会用本文的命令行的方法,继续研究预处理过程中的一些问题。

>>返回个人博客总目录

注:本文转载自blog.csdn.net的chhttty的文章"https://blog.csdn.net/u013288925/article/details/114270099"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top