当前位置: 首页 > 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.cnnetsun.cn/news/1677772.html

相关文章:

  • Dify 工作流/应用中的上下文变量提示
  • 斑斑AI vs 氚云:2026中小企业低代码平台选型全解析
  • 魔方财务批量拉取产品信息教程
  • 解锁论文写作新境界:书匠策AI——学术探索的智能导航灯
  • 我开发了 3 个 OpenClaw Skill,分享我的设计思路
  • Google Gemma 4 正式发布:Apache 2.0 开源许可 + 256K 上下文 + Agent 原生支持全面解读
  • C盘空间急救:使用TreeSize成功找回50GB空间
  • vxWorks6.8/6.9 操作系统下 QT 安装设置及运行方法
  • 覆盖数十个行业,GEO 如何帮不同赛道企业实现精准获客?
  • 2026年专业深度测评:超强增压花洒套装排名前五权威榜单
  • 团队技术专家的技术设计模版,真心好用!
  • Python中os.path模块的路径处理技巧
  • 为什么传统手游不适合鸿蒙游戏?
  • python 列表和字典
  • 基于单片机的全自动咖啡机控制系统设计
  • 基于MPC模型预测的两轮差速移动机器人多种轨迹跟踪控制(带参考文献)
  • 光储直流微网双向dcdc的MATLAB仿真 工况1:光伏发电能量>需求能量,多余能量存入蓄电池...
  • 国产跨平台文本编辑器Notepad--深度解析:从替代到超越的实战手册
  • 全域数学揭开的宇宙终极形状(乖乖数学)
  • 基于西门子S7-200 PLC与组态王技术的变频恒压供水控制系统设计与实物制作——软硬件设计详解
  • 多元化团队从多元化投资机构开始
  • Python 爬虫工程化实践:基于面向对象构建高可维护的 1688 数据采集系统
  • 大模型的“幻觉”问题:测试人员如何应对?
  • JAVA—— 杜绝越权访问!一套方案搞定数据权限隔离 + 多租户,直接集成项目
  • minSdk 从 26 升到 31 ,打包体积变大3倍 ,packaging dex 了解一下
  • PhpWebStudy:轻量级多环境开发工具箱的安全与效率革新
  • OpenMS深度解析:质谱数据分析的终极解决方案与架构创新
  • Windows驱动深度管理与系统优化:DriverStore Explorer全方位实战指南
  • android studio 解决git用户名和用户邮箱不一致的问题
  • AI创意视频进入量产,AdEff 帮你选出好创意