关于C语言的一些理论

发明


1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritch)和肯·汤普逊(Ken Thompson)在开发UNIX操作系统时设计了C语言。


优点:

  • 设计特性(自顶向下的规划、结构化编程和模块化设计)
  • 高效性(微调控能力)
  • 可移植性
  • 功能强大且灵活
  • 面向程序员

缺点:

  • C语言使用指针,而涉及指针的编程错误往往难以察觉。想拥有自由就必须时刻保持警惕。
  • C 语言紧凑简洁,结合了大量的运算符。可以编写出让人极其费解的代码。

C与C++

C++在C语言的基础上嫁接了面向对象编程工具(面向对象编程是一门哲学,它通过对语言建模来适应问题,而不是对问题建模以适应语言)。


高级计算机语言和编译器


一般而言,不同CPU制造商使用的指令系统和编码格式不同。但是,可以找到与特定类型CPU匹配的编译器。高级语言(如C、Java、Pascal)以更抽象的方式描述行为,不受限于特定CPU或指令集。

C的标准


1、1987年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)合著的The C Programming Language(《C语言程序设计》)第1版是公认的C标准,通常称之为K&R C或经典C。由于缺乏官方标准库,UNIX实现提供的库成为了标准库。


2、C89(因为ANSI于1989年批准该标准)或C90(因为ISO于1990年批准该标准),标准(ANSI C)定义了C语言和C标准库。注:美国国家标准协会(ANSI),国际标准化组织(ISO)
 C的精神:

  • 信任程序员;
  • 不要妨碍程序员做需要做的事;
  • 保持语言精练简单;
  • 只提供一种方法执行一项操作;
  • 让程序运行更快,即使不能保证其可移植性。

3、1994年,ANSI/ISO联合委员会(C9X委员会)发布了C99标准,实现目标:国际化、弥补缺陷和提高计算的实用性。


4、2011年终于发布了C11标准。不再强调“信任程序员”目标。

使用C语言的步骤

  1. 定义程序的目标
  2. 设计程序
  3. 编写代码
  4. 编译
  5. 运行程序
  6. 测试和调试程序
  7. 维护和修改程序

注意:建议要记录下程序的目标和设计框架

编译机制

  • 源代码文件(source code file)budget.c
  • 编译器,把源代码转换成中间代码,中间文件有多种形式。最普遍的一种形式为把源代码转换为机器语言代码,并把结果放在目标代码文件(简称目标文件)中
  • 目标代码,budget.obj
  • 链接器,链接器的作用是,把你编写的目标代码、系统的标准启动代码和库代码这 3 部分合并成一个文件,即可执行文件。启动代码充当着程序和操作系统之间的接口,Windows和Linux所需的启动代码不同,因为这些系统处理程序的方式不同。库文件中有许多函数的目标代码。
  • 可执行代码,budget.exe

在不同系统中编译程序


1、UNIX系统

  • 文本编辑器,生成源文件inform.c
  • 编译器,cc inform.c 生成可执行代码a.out
  • 运行程序,a.out

注:

a. 如果要储存可执行文件(a.out),应该把它重命名。否则,该文件会被下一次编译程序时生成的新a.out文件替换。
b. 一旦链接器生成了完整的可执行程序,将会删除目标文件inform.o,如果原始程序有多个源代码文件,则保留目标代码文件。
c. GNU编译器集合和LLVM项目:
GNU编译器集合(也被称为GCC,其中包含GCC C编译器)是GNU项目(GNU的意思是“GNU’s Not UNIX”)的产品之一。调用命令gcc
LLVM项目是cc(gcc的别名)的另一个替代品, 相应编译器为Clang编译器,调用命令:clang

  • cc-v 显示版本信息(各系统都使用cc别名来代替gcc或clang命令)
  • gcc -std=c99 inform.c,调用C99标准
  • gcc -std=c1x inform.c,调用GCC接受C11之前的草案标准
  • gcc -std=c11 inform.c,调用GCC接受的C11标准


2、Linux系统
Linux是一个开源、流行、类似于UNIX的操作系统,编译命令类似于:
gcc inform.c


3、Windows系统
C编译器不是标准Windows软件包的一部分,需要从别处获取并安装C编译器。
Cygwin,MinGW,Borland

  • 源代码文件test.c
  • 中间目标代码文件test.obj (与UNIX编译器不同,这些编译器在完成编译后通常不会删除这些中间文件。)
  • 汇编语言文件test.asm
  • 可执行文件test.exe


4、集成开发环境(Windows)
集成开发环境即IDE,Microsoft Visual Studio


5、Macintosh环境
苹果免费提供Xcode开发系统下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HaGoq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值