当前位置: 首页 > news >正文

导论:为什么要学C语言

1.1 C语言与其他编程语言的区别

c语言是实现底层硬件驱动的语言,而JavaScript、python等都是上层的语言,属于脚本语言;硬件驱动的程序都是用c语言来写,c语言能访问各个硬件的内存中的数据,比如调用指针。

1.2 C语言的发展历史

1.2.1 C语言的发展历史

FORTRAN:公式翻译语言

IAL(ALGOL58、ALGOL60...):国际代数语言

CPL :控制语言(结构化结构:判断、循环,过程与函数、递归调用)

B:去除了BCPL的复杂性功能,如垃圾回收;采用手动管理内存。由它开发了unix操作系统。

C:在B的基础上增加了更多功能,如指针运算、结构类型等,保持了BCPL和B的一些特性,保留了它们精炼接近硬件的优点,又克服了它们过于简单、无参数类型等的缺点。

基本上是由机器语言(0-1)->汇编语言->高级语言

1.2.2 C语言的版本

1.3 C语言的编译

C语言的编译工具是GCC,来自于GUN Prject(工程)。编译过程:

格式的转换:gcc -E(预处理器的指令) ----- gcc-S(编译器的指令) ----- gcc-c (汇编器的指令)----- gcc (链接器的指令)。

可在命令提示符运行一个.c文件并编译:

代码语句

gcc 文件名.c -o 文件名.exe ;//编译命令
gcc 文件名.c -o 文件名.exe -I ' //文件目录路径 ';//编译源文件之外的头文件命令行

1.4 C语言的开发环境

集成工具:使用命令行编译代码太复杂后来人们开发出IDE集成性的软件编译器,例如VScode

1.5 C语言的main()函数

为什么需要头文件?
1、硬件和计算资源限制
2、操作系统工具链设计特点
3、模块化开发增量编译//只需负责我这一块,分工,最后链接起来编译;增量编译:只需改动对应的.c文件,不需编译其他文件,,再进行链接,省去其他文件的编译
4、代码重用
5、避免重复定义//声明每个函数的接口,存放在一个软盘,让其他函数直接调用,头文件不需要实现某个功能
6、提供抽象和封装//只需提供.o文件即可,不需要提供.c文件(源文件),保证了代码的安全

避免重复定义的头文件(.h)代码:

#ifndef MYHEADER_H //如果MYHEADER_H 未被定义
#define MYHEADER_H //定义MYHEADER_H
//头文件内容
#endif //结束头文件保护

1.6 代码的风格及注释

风格:大括号上下对齐;四个空格/tab来缩进(没有严格规定缩进字符)

注释:多行与单行

多行:格式

/*

注释内容

*/

单行//

批量注释可用快捷键:ctril+K+C

小结:

错题:

解析: 双引号""会优先在当前目录查找头文件,找不到再搜索系统路径;尖括号<>直接搜索系统路径。选A(重点)

解析:宏展开不是汇编阶段的任务
宏展开是预处理阶段的任务,预处理器会将源代码中的宏定义替换为相应的代码。

解析:链接阶段是报告未定义函数错误的阶段(报告错误的阶段)
链接阶段是发生未定义函数错误的阶段

http://www.jsqmd.com/news/583448/

相关文章:

  • AI写论文福利来了!4款AI论文生成工具,为你带来写作新思路!
  • 原生开发环境管理的技术挑战与解决方案:FlyEnv架构深度解析
  • OpenClaw节日助手:Qwen3-14b_int4_awq生成的个性化祝福与礼物推荐
  • 10:2026 AI变现实战总览:内容、工具、信息差三种变现闭环
  • 2026年,探秘义乌一次性包装盒定做厂家的独特工艺与优质服务!
  • gorm高级使用
  • 【草稿】 - Harvey
  • 深入探讨COMSOL模拟多相裂隙流中的传质与盐分现象:基质与裂隙控制方程的构建与应用
  • 虚拟同步发电机双机预同步并联仿真的Simulink建模技术及应用
  • 我开发了 3 个 OpenClaw Skill,分享我的设计思路
  • 基于MATLAB平台PCA的人脸识别:开启识别新征程
  • CMMI 能力成熟度模型集成介绍
  • Uniapp H5Builderx 预览Html 显示404问题解决
  • k8s中containerd配置镜像加速
  • 2026年想找本地GEO优化?这里有你要的答案!
  • 基于51单片机的测量仪(电压,电平,频率) 1104-基于51单片机的测量仪(电压,电平
  • 2026年最新TOP3媒体发稿服务商榜单:企业品牌传播选型指南 - 发稿平台推荐
  • 基于YOLOv10深度学习的植物叶片病害识别检测系统(YOLOv10+YOLO数据集+UI界面+Python项目+模型)
  • 第3篇:嵌入式芯片核心架构基础:冯·诺依曼架构与哈佛架构的本质差异与场景适配
  • CST Python接口示例
  • 南麟XT1117 低压差线性LDO稳压器芯片 多种封装形式
  • 驾校招生断崖式下跌?这3个数据驱动的获客策略,让报名量翻倍
  • 2026年深圳冷冻食品包装盒代理,其中商机你知道多少?
  • 解决Python SocketIO客户端连接问题
  • OpenHTMLtoPDF实战:彻底解决JAR包环境中字体加载的NullPointerException问题
  • 余姚加工中心编程培训哪家性价比高
  • 魔方财务批量拉取产品信息教程
  • Dify 工作流/应用中的上下文变量提示
  • 单线程 Redis 的高性能之道
  • ​Problem - 2148F - Codeforces​[字符串后缀排序]