CS61c课程学习心得:C语言在计算机体系结构中的重要性解析

CS61c系列课程学习

CS61c课程学习心得:C语言在计算机体系结构中的重要性解析

本系列博客的分享是以《CS61c》这门课程为基础进行的,主要记录的是我在学习过程中的心得以及所获得的收获。

引言

工欲善其事,必先利其器。——《论语·卫灵公》

我要学习计算机体系结构,那为何要学习 C 语言呢?讲体系结构的课程为何一开始先讲解 C 语言呢?因为 C 语言具备指针的用法,能够直接对内存进行操作。而计算机体系结构有一个极为重要的概念,那就是内存,要在内存中存储数据以及将数据加载到内存中。也就是说,C 语言处于比较底层的位置,在高级语言当中,可以借助 C 语言来探寻体系结构的奥秘。

正文 一、C语言的编译

C语言的编译,是与计算机所选用的体系结构有关的。

就像由 x86 进行编译的 C 程序,无法在 RISC-V 的架构体系上得以运行。

C语言的编译过程:

C编译的优势

运行时性能非常出色。 它在运行时能高效地处理各种任务,表现出卓越的性能。 其运行时的效率很高,能够快速响应各种操作。 运行时的性能优势明显,能快速完成各项任务。 它在运行过程中展现出了极佳的性能表现。 运行时的性能很好,能够迅速处理各种事务。 该系统在运行时的性能十分突出,能快速响应并处理各种需求。 运行时的性能很棒,能够高效地完成各种工作。 它的运行时性能良好,能够快速地应对各种情况。 运行时的性能表现优异,能迅速地完成任务。 该软件在运行时的性能相当出色,能快速处理各种操作。 运行时的性能优良,能够高效地完成各项任务。 它在运行时的性能表现很好,能够快速地响应各种需求。 运行时的性能很突出,能够迅速地处理各种事务。 该程序在运行时的性能非常好,能快速地完成各项工作。 运行时的性能表现极佳,能迅速地应对各种情况。 它的运行时性能很优秀,能够高效地处理各种操作。 运行时的性能良好,能够快速地完成各项任务,表现十分出色。

用英文能够很好地表达编译的基本概念。接下来让我用最经典的三段论来进行总结。

C语言编译的缺点:

二、C语言的预处理

1、预处理的时机

预处理(C Pre-Processor, CPP)是在 C 语言进行编译之前进行的操作。如图所示:

2、预处理对源代码做什么

3、预处理的用法

预处理的命令以#开头,最常用的如下:

#include "file.h"      // 头文件
#include      // 头文件
#define PI (3.14159)   // 宏
#if / #endif           // 条件编译预处理

4、如何看预处理生成什么内容

在编译的时候, 在gcc命令后加上-save-temps。

实例分析:

创建一个main.c文件,代码如下:

#include 
#define PI (3.14159)
int main(){
        printf("PI = %f\n",PI);
        return 0;
}

执行命令,使用 gcc 编译器,将输出文件命名为 main,同时保存中间文件,源文件为 main.c

o main 是一个整体,它的作用是产生最终的执行文件,该执行文件的名字为“main”。

save-temps 的意思是,在编译过程中会产生一些临时文件,而这里产生了 main、main.c、main.i、main.o、main.s 这五个文件。

其中,main.i 是经过预处理后所生成的文件,你可以对其进行简单的查看。

对于宏的应用,在这里多说一点。

三、C语言的简单语法

1、main 函数

在 C 语言中,主要的函数入口是 int main ,它带有两个参数,一个是 int argc ,另一个是 char *argv[] 。

argc与argv的理解

2、int

遇到想使用 int 的情况时,可以考虑使用 intN_t 或者 intN_t 。

(N是一个整数,例如32,即int32_t)。

3、 const

在声明时,常量被赋予一个有类型的值;在整个程序的执行过程中,其值不能改变。

定义了一个整型常量 days_in_week,其值为 7。

4、enum

定义了一个枚举类型 color,其中包含了 RED、GREEN 和 BLUE 这三个枚举值。

5、typedef

typedef uint8_t BYTE;
BYTE b1,b2;

6、struct

Structs 是变量的结构化组合。

typedef struct {
	int length_in_seconds;
	int year_recorded;
} SONG;
SONG song1;
song1.length_in_seconds =  213;
song1.year_recorded     = 1994;

7、do-while 语法

首先执行一次 statement 语句,然后判断 expression 是否为真,如果为真则继续执行 statement 语句,再次判断 expression,如此循环,直到 expression 为假时结束循环。

总结

本文依据 CS61C 的课程内容,凭借自身的理解,对 C 语言的编译部分、预处理部分以及简单语法部分的内容进行了简要总结。因为刚刚开始学习,所以很可能存在理解有偏差的地方,期望大家能够提出批评和指正。

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

82阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

87阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

86阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

78阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读