程序是如何运行起来的

程序是如何运行起来的,第1张

程序是如何运行起来的?

如果要从底层逻辑来讲,是需要具备工科背景的硬件知识的,我们今天只讲应用层的知识,这样对没有工科背景的人也能理解。任何一种程序的运行都会有一 个主函数,或者叫入口函数,或者叫第一推动力吧,打个比喻:你到家只有按了开关,灯才会亮,就算你是声控灯,只有你发出达到声控灯开启的音量时,灯才感应到而发光。

我们来看一段C语言的程序代码:

/*定义函数A*/

A()

{

Printf(‘我是自定义函数A’)

}

/*定义函数B*/

B()

{

Printf(‘我是自定义函数B’)

}

/*定义函数C*/

C()

{

Printf(‘我是自定义函数C’)

}

Main()

{

Printf(‘我是主函数,程序要从我这里开始运行’)

/*调用函数ABC*/

A()

B()

C()

}

运行程序会输出如下:

我是主函数,程序要从我这里开始运行

我是自定义函数A

我是自定义函数B

我是自定义函数C

我们再把上面的程序改成如下这样:

A()

{

Printf(‘我是自定义函数A’)

}

B()

{

Printf(‘我是自定义函数B’)

}

C()

{

Printf(‘我是自定义函数C’)

}

Main()

{

Printf(‘我是主函数,程序要从我这里开始运行’)

/*调用函数ABC*/

A()

C()

B()

}

运行程序会输出如下:

我是主函数,程序要从我这里开始运行

我是自定义函数A

我是自定义函数C

我是自定义函数B

为什么会这样?1.因为程序是从主函数(第一推动点开始运行,相当于开关按键,要由这个地方开始触发)

2. 程序会在主函内按照从上到下的顺序运行(如果遇到注释文字会调过,比如:/*调用函数ABC*/,属于说明文字,方便阅读理解程序的,不是程序要执行的内容。)

细心的读者可能会留意到程序第一遍执行输出内容与第二遍有区别 “我是自定义函数C”输出的顺序在中间,这是因为在调用函数时,把它的执行顺序放在了中间,所以它在中间输出。

以上就是一个帮小白理解编程的一简单的例子,真实的情况,由于要解决的问题复杂得多,程序也会非常复杂,但原理是不变的,就是电脑按照你预先编写的顺序运行程序, 这就是编程

编程是一门实践性非常强的学科,只有下载了编译器多敲代码,才会加深理解。

知行合一,首先要知道,再行动,才能获得好的学习效果。

如果我的文章对您有帮助,欢迎点赞加关注,结合我的视频讲解,希望能带您入门写程序。

分类: 电脑/网络 >>程序设计 >>其他编程语言

解析:

用你用来编程的那个工具软件,编译成exe可执行文件。

比如VB里面就是选“文件”菜单里面的“生成工程1.exe”,工程名可以改。其他的编程语言也类似。

如果是在编程中试运行,那么,VB里面是按F5,或者按菜单条下面一点,正中间靠左那个蓝色的右箭头,就像是播放器里的播放图标的那个。

其实不是很复杂。虽然程序很大,但并不是所有的东西都要载入内存,也并不是同时载入内存的。\x0d\x0a这样说吧,其实就是个状态切换、控制权的切换和资源切换的问题。\x0d\x0a当你打开电脑,进入windows,系统初始化完成后,电脑处于一个状态:等待你做 *** 作。\x0d\x0a当你点击魔兽世界的快捷键的时候, *** 作系统根据你的 *** 作找到对应的可执行文件,将那个可执行文件载入系统内存。然后开始运行这个程序(注意每一个可执行文件都是按照某种 *** 作系统规定的格式写的。)。在这个时候,我们用非专业的话来说,实际上电脑的控制权就交给了这个可执行程序。那么这个可执行程序比如魔兽世界程序就开始控制电脑进行一些游戏的初始化工作,比如运行游戏引擎,读取登陆界面所需的图片资源载入内存等等。\x0d\x0a魔兽世界初始化完成后,电脑又处于一个状态:等待你做 *** 作。\x0d\x0a你输入账号密码点击按钮登陆游戏的时候,程序将你输入的东东加密通过网络传到服务器进行验证,服务器会回传一些数据回来,程序接收到这些数据后,验证了你的身份等级地图等信息后,开始读取一些你电脑上的文件,更新游戏引擎状态,向内存载入地图,绘制,向内存载入音乐,播放等等。在这个时刻,之前载入的登录界面所需的图片资源和声音等等就可以从内存中清除掉了。然后就是你 *** 作,程序接收到你的 *** 作,进行相应的处理,每次你切换场景的时候,之前场景用到的一些内存资源就可以被释放了,这样你在玩的过程中,就只用得到当前用到的那些内存了,基本就是这个样子了。\x0d\x0a不管怎样,在同一时刻,必须驻留在内存中的只有你当时所在的地图资源音乐资源和必须的游戏引擎等等。这样说不知道请不清楚。有问题就补充吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11973122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存