此篇文章立场为一个刚读完《c语言中文网》教材,并写过牛客网c语言入门题的小白。
这篇文章记录一个小白在阅读c primer plus时遇到的疑惑和知识点。
一.c语言的特性
1.自项向下的规划
这点反应了c语言是从程序的主函数(main函数)开始,按照代码的顺序依次向下开始编译代码
A.在c语言中,程序的执行始于main函数,当程序开始时,程序先调用main函数,因此main函数被称为程序的起点。
B.C语言程序会按照源代码的顺序依次执行
C.会依次执行在main函数中调用的函数
D.同时条件语句和循环语句会改变代码执行的顺序
2.结构化编程
c语言在这方面使用特定的编程结构提高了代码的可读性
A. 顺序结构
B.循环结构:使用for,while循环来使代码满足特定的条件再退出,避免代码的重复
C.选择结构:使用if条件语句来满足在不同情况下执行不同的语句
3.模块化编程
c语言着重于将代码划分为不同的模块,来完成不同的功能
A.分为功能明确的模块,易于管理
B.需要注意调用函数时,函数之间的逻辑关系
C.避免代码的重复出现
D.函数的封装,将具体的细节隐藏
二.高效性
C语言有汇编语言才有的微调能力,在此之前我们先了解一下什么是汇编语言,以及机器语言的特定性
1.汇编语言
汇编语言提供了一种人类可以解读和理解的方式来编写计算机程序,是一种低级语言,常与机器的硬件直接打交道,是机器语言的一种文本表现形式,与具体cpu架构有关,特点主语包括有
A.使用助记符(一种符号和记号用于表达特定的计算机指令,提高可读性)
B.允许操作员直接访问内存,寄存器和其他硬件,因此拥有更高的硬件控制能力
C.汇编语言通常与计算机体系(cpu架构)有关,因此相同的汇编语言不能在不同的cpu架构上运行,通常需要重新编写或者微调
2.机器语言的特定性
机器语言的特定性是计算机体系结构(cpu架构)的特定的编程语言,每种计算机体系结构都有自己独特的编程语言,这是因为不同的cpu有不同的指令集和操作码,这些指令集和操作码来实现计算机的具体操作,以下是机器语言特定性的一些特点
A.机器语言与计算机的硬件架构紧密相关,不同的cpu通常有自己不同的机器语言
B.机器语言是计算机编程中最底层的语言,他直接操纵机器的内存,寄存器,和其他硬件,因此非常接近计算机的底层
C.机器语言都使用二进制来表示指令和数据,每个指令和数据都以特定的二进制编码,这也属于cpu体系结构的一部分
D.机器语言具有架构依赖性,这意味这他们只能在架=架构相同的cpu上运行
E.机器语言允许程序员直接访问硬件
eg:
寄存器(Registers)是计算机中的一种特殊的存储设备,通常位于中央处理器(CPU)内部。寄存器是一组用于存储和操作数据的小型、高速的存储单元。每个寄存器都有一个唯一的名称,用于标识其用途和功能。
以下是寄存器的一些重要特点和用途:
-
高速存储:寄存器是CPU内部的存储设备,速度非常快。与主内存相比,寄存器的访问速度要快得多。
-
临时存储:寄存器用于存储临时数据,包括算术运算中的中间结果、函数调用中的参数和返回值等。
-
指令操作:CPU使用寄存器来执行各种指令,包括算术和逻辑运算、数据传送和控制流程等。
-
寄存器名称:每个寄存器都有一个特定的名称,通常由字母、数字或缩写组成。不同的CPU架构具有不同的寄存器集合。
-
有限数量:每个CPU架构都有一组有限数量的寄存器。这些寄存器的数量和用途在不同的架构之间有所不同。
-
寄存器命名约定:寄存器通常按照一定的命名约定进行命名,以指示其用途。例如,x86架构中的
EAX
寄存器通常用于累加器,EBX
用于基址,ECX
用于计数,EDX
用于数据等。
RAM的大小通常以GB(千兆字节)为单位来衡量,现代计算机通常配备4GB、8GB、16GB或更多的RAM,具体取决于计算机的用途和性能需求。更多的RAM通常意味着计算机可以同时运行更多的应用程序,并更快地处理任务。RAM是计算机性能的重要组成部分,特别是对于多任务处理和复杂应用程序来说。
-
RAM是计算机中的一种关键硬件组件,它代表随机存取存储器(Random Access Memory)的缩写。RAM是计算机用来临时存储数据和程序的地方,以供CPU(中央处理单元)进行快速访问和处理。与计算机的硬盘驱动器(HDD)或固态驱动器(SSD)等永久存储设备不同,RAM是一种临时存储设备,其内容在计算机关闭或断电时会丢失。
-
RAM的主要功能包括:
-
存储正在运行的程序:当您启动计算机上的应用程序时,操作系统会将程序的数据和指令加载到RAM中,以便CPU能够快速访问并执行它们。
-
加速计算机性能:RAM的快速读写速度使计算机能够更快地执行任务。更多的RAM可以使计算机同时运行多个应用程序时更加流畅。
-
临时存储数据:RAM用于存储正在编辑的文档、浏览器中打开的网页、正在播放的媒体文件等。这些数据可以在计算机上进行快速访问和操作。
c语言与汇编语言的相似性与不同
相似之处:
-
底层性质:C语言和汇编语言都是相对底层的编程语言,允许程序员直接访问计算机硬件。
-
硬件控制:两者都允许程序员更精确地控制计算机硬件,包括寄存器、内存和I/O设备。
-
性能:C语言和汇编语言通常都能够编写高性能的代码,因为它们允许程序员更好地优化程序以利用硬件资源。
不同之处:
-
抽象程度:C语言比汇编语言更高级,提供了更丰富的抽象层次。C语言使用变量、函数和数据结构等抽象概念,使程序更易于理解和维护。
-
可移植性:C语言具有更好的可移植性,因为它的代码可以在不同的操作系统和计算机架构上运行,只需进行适度的调整和重新编译。
-
开发速度:C语言通常比汇编语言更快速地进行开发,因为它提供了更高级别的抽象和更广泛的标准库,可以加速程序的编写和测试。
-
可读性:C语言的代码通常更易于阅读和理解,因为它使用了自然语言的标识符和结构,而不是汇编语言的符号和助记符。
C语言的优点:
-
可移植性:C语言代码在不同平台上更容易移植。
-
高级抽象:C语言提供了高级的抽象概念,使程序更易于编写和维护。
-
标准库:C语言具有广泛的标准库,包括数据结构和算法,可以加速开发。
C语言的缺点:
-
相对汇编语言的性能损失:C语言的抽象程度可能会导致性能略微下降,与汇编语言相比。
-
不适合某些嵌入式系统:对于某些嵌入式系统或对性能要求极高的应用,C语言可能不够灵活,需要使用汇编语言。
-
仍需要一定硬件知识:虽然比汇编语言高级,但C语言仍然需要一定的硬件知识来充分利用计算机资源。
总的来说,C语言提供了一种更高级别、更可移植且易于维护的编程方法,适用于大多数应用程序的开发。而汇编语言更适合需要对硬件进行极致优化或在特定硬件平台上编程的情况。选择哪种编程语言通常取决于项目的需求、性能目标和开发人员的经验水平。许多项目也会使用C语言和汇编语言的混合,以兼顾可读性和性能。