C 语言入门(第一篇)计算机基础、编译全过程、HelloWorld 完整教程 文章目录前言一、计算机硬件与底层基础1. 软硬件区分2. 计算机六大核心部件3. 计算机工作核心原理4. 三代计算机语言对比二、C 语言起源、标准与核心特点1. C 语言发展史2. C 语言主流标准版本3. C 语言五大核心优势嵌入式必看三、C 程序完整开发流程四、标准 HelloWorld 完整代码五、C 语言三种注释六、嵌入式标准 C 编码规范团队通用七、常见新手问题前言C 语言是嵌入式开发唯一主流底层语言Linux 内核、单片机、驱动、应用程序全部由 C 编写。本篇从零铺垫底层计算机原理、C 语言起源标准、源码到可执行程序完整 4 步编译流程手把手写出标准 HelloWorld 程序统一嵌入式工程编码规范适配 Ubuntu 虚拟机开发环境。一、计算机硬件与底层基础1. 软硬件区分硬件CPU、内存、硬盘、串口、单片机、开发板等物理设备软件系统软件Linux、Windows 操作系统开发工具gcc 编译器、vim 编辑器应用软件用户业务程序2. 计算机六大核心部件CPU运算 指令控制执行所有代码逻辑内存程序运行临时存储空间断电丢失数据输入设备键盘、鼠标、串口、传感器输出设备显示器、屏幕、打印机外存硬盘、U 盘、Flash永久保存代码文件网络设备间数据传输SSH、TCP/IP3. 计算机工作核心原理存储程序代码和数据预先存入内存程序控制CPU 按顺序逐条读取、执行内存指令4. 三代计算机语言对比表格|语言原理优缺点示例机器语言纯二进制 0/1执行最快人类无法阅读10110000汇编语言英文助记符映射二进制贴近硬件可读性一般MOV AL,61h高级语言 ( C )贴近自然英文易读、可移植需编译printf(“hello”);二、C 语言起源、标准与核心特点1. C 语言发展史1969 Ken Thompson 开发 B 语言编写早期 UNIX1972 Dennis RitchieC 语言之父基于 B 创造 C 语言1973 完整 UNIX 系统全部使用 C 重写奠定 C 系统级语言地位2. C 语言主流标准版本年份标准名称说明1989C89/ANSI C第一个通用标准1990C90ISO 采纳 C89完全一致1999C99嵌入式开发最常用标准2011C11多线程、原子操作支持2018C18C11 漏洞修复版本2023C23新增nullptr、#embed等新特性补充GCC 的 GNU C 属于编译器扩展语法不属于官方标准 C。3. C 语言五大核心优势嵌入式必看底层可控可直接操作内存地址、寄存器适配硬件驱动高效精简生成机器码体积小、运行速度接近汇编跨平台移植 一套标准代码可在 PC/ARM 开发板 / 单片机编译运行结构化编程 以函数为单元代码模块化方便维护生态完善Linux 内核、开源驱动、嵌入式工具全部基于 C三、C 程序完整开发流程整体三步宏观编辑Vim/VS Code 编写 .c 源码文件编译 gcc 将源码转为可执行二进制程序运行 Linux 系统加载程序执行输出结果编译四大细分阶段完整流程预处理 → 编译 → 汇编 → 链接预处理gcc -E处理#include头文件拷贝、#define宏替换、删除注释输出文件.i 纯文本预处理代码gcc-Edemo.c-odemo.i编译gcc -S语法、语义检查将 C 代码翻译成汇编指令输出文件.s 汇编文本文件gcc-Sdemo.i-odemo.s汇编gcc -c汇编指令转为二进制机器码生成目标文件输出文件.o 二进制目标文件gcc-cdemo.s-odemo.o#简写gcc -c demo.c 直接完成前3步链接gcc 无 - c 参数将多个.o文件 系统标准库合并生成最终可执行程序gcc demo.o-odemo#最简一键编译开发日常使用gcc demo.c-odemo编译流程示意图源码 (.c/.h) → 预处理 (.i) → 编译 (.s 汇编) → 汇编 (.o 目标) → 链接 → 可执行程序四、标准 HelloWorld 完整代码demo01.c/************************************************************************* File Name: demo01.c Author: yueqian Mail: 2419196181qq.com Created Time: 2026年07月27日 ************************************************************************/#includestdio.h// 程序唯一入口主函数intmain(intargc,char*argv[]){// 终端打印字符串\n代表换行printf(Hello World!\n);// 程序正常退出返回0return0;}代码逐段解析#includestdio.h预处理指令引入标准输入输出库printf依赖此头文件。intmain(intargc,char*argv[])程序唯一入口函数操作系统自动调用不可手动调用。int函数返回值类型return 0代表程序正常结束argc命令行参数总个数argv命令行参数字符串数组无参数简写int main(void)规范写法不推荐空main()printf(Hello World!\n);标准库输出函数分号;代表语句结束return0;告知操作系统程序正常执行完毕。Linux 编译 运行命令# 1. 编译生成可执行文件demogcc demo01.c-odemo# 2. 运行程序./demo# 输出结果Hello World!五、C 语言三种注释单行注释 //仅当前行生效适合单行说明// 打印欢迎文字printf(hello);多行注释 /* 内容 */跨多行注释不支持嵌套/* 主函数入口 嵌入式程序启动点 */文档注释文件头部代码头部统一说明文件名、作者、创建时间我们 vimrc 自动生成的头部就是文档注释。注释仅给程序员阅读预处理阶段直接删除不参与编译。六、嵌入式标准 C 编码规范团队通用缩进规范统一使用 4 空格Tab 映射为 4 字符对应 vimrc 配置tabstop4 shiftwidth4 expandtab大括号{和函数同行}单独对齐// 推荐标准写法intmain(void){printf(test);return0;}// 不推荐Java风格intmain(void){printf(test);}空行分隔头文件、宏、函数、逻辑块之间空一行区分代码模块#includestdio.h#defineMAX_NUM100intmain(void){printf(hello);return0;}单句单行禁止多条语句写同一行// 不推荐printf(a);printf(b);// 推荐printf(a);printf(b);标识符命名变量 / 函数见名知意禁止无意义 a、b、c// 不推荐inta20;// 推荐intage20;注释规范复杂逻辑、硬件寄存器、函数功能必须加注释简单代码无需冗余注释。七、常见新手问题报错gcc: 未找到命令解决安装编译工具 sudo apt install gcc./demo提示权限不足解决编译生成的程序默认拥有执行权限无权限执行chmod x demo忘记#include stdio.hprintf 警告解决输出函数必须引入标准输入输出头文件编译执行报错expected ; before return解决语句末尾漏写分号;