C语言学习笔记 - 16.C编程预备计算机专业知识 - Hello World程序的运行原理

一、Hello World程序的编写步骤

1.1 标准编写流程

需严格按照标准步骤操作,避免因文件未建立等基础问题影响后续学习:

  1. 新建C语言源文件(如在D盘指定目录创建hello.c)。

  2. 编写固定格式的基础代码框架。

1.2 最简Hello World程序示例

复制代码
#include <stdio.h>  // 标准输入输出头文件,为printf等函数提供支持
int main()          // 主函数,C程序的唯一入口
{
    printf("欢迎来到C世界\n");  // printf:将内容输出到显示器
    return 0;       // 程序正常结束返回值
}

说明 :上述代码为C程序的固定基础格式,printf的具体含义将在后续语法章节详细讲解。


二、编译与链接:生成可执行文件(.exe)

2.1 核心流程

编写的C代码本质是纯文本字符(与记事本内容无区别),需通过以下两个步骤生成可执行程序:

  1. 编译:将C源代码转换为中间目标文件。

  2. 链接 :将目标文件与系统库整合,生成后缀为.exe的可执行文件

2.2 关键说明

  • 可执行文件(.exe)由开发软件(VSCode)生成。

  • 编译、链接的具体内部逻辑无需深入掌握,只需明确其作用是生成可执行文件即可。


三、.exe文件的执行过程

点击开发软件的"运行"按钮后,程序的实际执行流程如下:

  1. 开发软件无法直接执行.exe:开发软件仅负责生成.exe,无直接执行权限。

  2. 请求操作系统执行 :点击运行后,开发软件向操作系统发送请求,由操作系统接管执行流程。

  3. 操作系统调用CPU :操作系统控制硬件,调用CPU执行.exe文件的指令。

  4. 结果输出到显示器 :CPU执行完成后,将结果通过显示器输出(如"欢迎来到C世界")。

核心铁律

  • 所有软件的运行都建立在操作系统基础之上,无操作系统则软件无法运行。

  • 程序的最终执行单元是CPU,所有代码逻辑均由CPU完成运算。


四、操作系统与硬件的访问控制

不同Windows版本对"程序直接访问硬件"的权限有明确差异:

Windows版本 硬件访问规则 核心原因
Windows 98/ME 允许程序直接访问硬件 早期系统未限制硬件直接控制
Windows 2000/XP及之后 屏蔽直接硬件访问,仅允许通过操作系统接口访问 认为直接控制硬件存在安全风险,所有硬件操作由操作系统统一管理

说明:现代操作系统均由自身统一控制硬件,程序需通过操作系统提供的接口间接访问硬件,无法直接操控。


五、核心要点总结

  1. C程序从编写到运行的完整流程:编写纯文本代码 → 编译+链接生成.exe → 操作系统调用CPU执行 → 显示器输出结果

  2. 开发软件仅负责生成.exe,执行需依赖操作系统 ,最终由CPU完成运算。

  3. 现代Windows系统禁止程序直接访问硬件,所有硬件操作由操作系统统一管控

  4. 编译、链接的内部细节无需深入掌握,明确其"生成可执行文件"的作用即可。

相关推荐
马可家的菠萝11 小时前
你收藏的资料,有多少真的被你第二次打开过?
笔记·知识管理·效率提升·个人知识库
Escalating_xu12 小时前
【C 语言项目】数组和函数综合实践:从零实现控制台扫雷游戏
c语言
小刘在重生~12 小时前
Java Lock 显式锁案例|ReentrantLock 解决多线程安全问题(超详细实战)
java·笔记·面试
职豚求职小程序12 小时前
中国人寿27秋招笔试[特殊字符]北森机考|备考攻略
笔记
江湖人称菠萝包12 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts
笔记·qt·qt5
乐橙开放平台12 小时前
从「多套客户端」到一套开放能力:乐橙视频监控能力复盘
笔记·物联网·自动化·音视频·智能家居
AI职业加油站13 小时前
数据要素价值释放年:大数据治理工程师,站上职业新风口
人工智能·学习·职场和发展·数据分析·职场发展
啄缘之间13 小时前
1.【SVA】什么是SVA?
经验分享·学习·测试用例·verilog·sva
山岚的运维笔记13 小时前
mysql 专业笔记 -- 第 36 章:MySQL 管理
运维·数据库·笔记·后端·mysql·oracle·dba
sunoo-22914 小时前
【嵌入式裸机开发Day04】i.MX6ULL 蜂鸣器驱动详解:从引脚地址查找到代码实现全流程
arm开发·单片机·嵌入式硬件·学习·串口·裸机