【操作系统】【实例说明】重新认识程序从编译到执行的过程:从C语言代码到一个可执行文件计算机做了什么

这是学习进程所需要必要的知识,要想知道进程里面包括了什么,有必要对进程的前身有深入的具体的了解。
接下来从一段C代码开始,描述以Linux环境作为编译条件的从代码到执行的过程,包括源代码,中间产生的反汇编内容等:

1.这是一个判断是否为闰年的C代码(符合C99标准):

文件命名为example.c

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
char * warning ="Wrong Input!\n";
int global_var = 1;
bool result;
bool leap_year(int year){
	if((year * 4 == O && year * 100 != 0)1|(year * 400 == 0))
		result = true//判断闰年
	else
		result = false;
	return result;
}
int main(void){
	int y;
	scanf("号d",&y);
	if(y< 0) {						//非法输入
		printf("* s\n", warning)//打印出错信息
		return 0;
	bool r;
	r = leap_year(y);
	printf("r =*d\n", r);
	int * dynmc =int *)malloc(sizeof(int)* 2);
	dynmc[0]= y;
	dynmc[1]= leap_year(dynmc[0]);
	printf("dynmc[1]=* d\n", dynmc[1]);
	free(dynmc)return 0}

2.编译阶段

aarch64 -linux -gun -gcc -o example example.c//编译命令 将.c文件编译成ARMv8架构下可执行的二进制格式。

编译后形成的二进制文件
后文明天再肝。。。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张学灿@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值