程序的机器表示
2021/7/12 1:11:45
本文主要是介绍程序的机器表示,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
程序编码
gcc -Og -o hello hello.c
命令使用gcc编译器将hello.c 输出为hello
-Og表示对c代码编译为机器代码的优化等级 等级越高 产生的代码变形越严重 可读性越差
-
gcc中指定优化级别的参数有:-O0、-O1、-O2、-O3、-Og、-Os、-Ofast。
-
在编译时,如果没有指定上面的任何优化参数,则默认为 -O0,即没有优化。
-
参数 -O1、-O2、-O3 中,随着数字变大,代码的优化程度也越高,不过这在某种意义上来说,也是以牺牲程序的可调试性为代价的。
-
参数 -Og 是在 -O1 的基础上,去掉了那些影响调试的优化,所以如果最终是为了调试程序,可以使用这个参数。不过光有这个参数也是不行的,这个参数只是告诉编译器,编译后的代码不要影响调试,但调试信息的生成还是靠 -g 参数的。
-
参数 -Os 是在 -O2 的基础上,去掉了那些会导致最终可执行程序增大的优化,如果想要更小的可执行程序,可选择这个参数。
-
参数 -Ofast 是在 -O3 的基础上,添加了一些非常规优化,这些优化是通过打破一些国际标准(比如一些数学函数的实现标准)来实现的,所以一般不推荐使用该参数。
vim以二进制打开文件
vim -b fileName 以二进制打开文件
在命令模式下输入 :%!xxd
这篇关于程序的机器表示的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-17HarmonyOS NEXT开发实战:打造高效上拉刷新与下拉加载组件(一)空页面的设计与实现
- 2024-11-17职场毒瘤:无脑尊蠢老!我不反对尊老,我只是反对没有脑子的尊老!
- 2024-11-17顶级企业如何用数据脱敏保护用户隐私!
- 2024-11-16ShardingSphere 如何完美驾驭分布式事务与 XA 协议?
- 2024-11-16ShardingSphere如何轻松驾驭Seata柔性分布式事务?
- 2024-11-16Maven资料入门指南
- 2024-11-16Maven资料入门教程
- 2024-11-16MyBatis Plus资料:新手入门教程与实践指南
- 2024-11-16MyBatis-Plus资料入门教程:快速上手指南
- 2024-11-16Mybatis资料入门教程:新手必看指南