“C 不是一种“非常高级”的语言,也不是一种“体量大”的语言,并且不专门针对任何特定的应用领域。 但它没有限制且具有通用性,这使得它比所谓更强大的语言更方便、更有效地完成许多任务。” ——K&R
|
|
Stephen Prata. C Primer Plus.ISBN 9787115390592.
为什么要阅读手册?
RTFM 和 STFW:如何知道你已完全搞砸了
有一个古老而神圣的传统:如果你收到RTFM的回应,回答者认为你应该去读他妈的手册。当然,基本上他是对的,你应该去读一读。
RTFM 有一个年轻的亲戚。如果你收到STFW的回应,回答者认为你应该到他妈的网上搜索。那人多半也是对的,去搜索一下吧。(更温和一点的说法是 Google 是你的朋友!)
在论坛,你也可能被要求去爬爬论坛的旧文。事实上,有人甚至可能热心地为你提供以前解决此问题的讨论串。但不要依赖这种关照,提问前应该先搜索一下旧文。
为什么要阅读手册?
通常,用这两句之一回答你的人会给你一份包含你需要内容的手册或者一个网址,而且他们打这些字的时候也正在读着。这些答复意味着回答者认为:
你不应该因此不爽;依照黑客的标准,他已经表示了对你一定程度的关注,而没有对你的要求视而不见。你应该对他祖母般的慈祥表示感谢。
IDE(集成开发环境)和编辑器是软件开发中常用的工具。它们都用于编写、编辑和管理代码,但在功能和用途上有一些区别。
IDE是一种集成了多个工具和功能的软件,旨在提供全面的开发环境。它通常包括代码编辑器、调试器、编译器、构建工具、版本控制系统等。IDE提供了一个统一的界面,使开发人员可以在一个应用程序中完成多个开发任务。
编辑器则更加轻量级,专注于提供代码编辑功能。它通常具有语法高亮、自动完成、代码折叠等基本功能,但不包含其他开发工具。编辑器通常更加灵活和可定制,适合开发人员根据自己的需求选择插件和扩展。
使用0和1字符串表示数字的方法
为什么计算机使用二进制?
通过在字符串前面添加0b或添加下标2来表示
|
|
如何形成负数?
最高位代表值的符号
思考
定点数表示法
浮点数表示法
https://godbolt.org/z/Yf4Edbjee
我们在某种程度上用英语编写代码,但系统实际上只看到0和1。 我们该如何解决这个问题?
翻译以两种方式进行
C 编译器将 C 程序直接映射为特定于体系结构的机器代码(1 和 0 的数值串)。
对于 C,处理 .c 源文件的编译通常分为 3 个部分
https://godbolt.org/z/4esj9rvar
程序的组成要件
C 源文件在编译器看到代码之前首先经过预处理器(CPP)处理
CPP 用单个空格替换注释
CPP 命令以“#”开头
使用 gcc 的 –save-temps 选项查看预处理结果
标准库(Standard Library)是一组在编程语言中提供常用功能和工具的软件库。在C语言中,标准库是由C标准委员会定义的,它包含了一系列的头文件和函数,提供了许多常见的操作和功能,如输入输出、字符串处理、内存管理、数学运算等。
官方DLC
第三方库(Third-party library)是由独立的开发者或组织创建和维护的软件库,它们不是编程语言的标准库的一部分。第三方库通常提供了额外的功能和工具,以扩展编程语言的能力,使开发者能够更快速、更方便地开发应用程序。
社区模组
简单的main函数形式:
要让 main 函数接受参数,请使用以下语句:
这是什么意思?
必须声明变量的类型
类型 | 描述 | 例子 |
---|---|---|
char | 8位,ASCII | ‘a’, ‘A’, ‘\n’, 12 |
int | 整数值(正、负、0),>= 16 位,一般为32位 | 0, 78, -217, 0x2E |
unsigned int | 整数值(正、0) | 0, 6, 35102 |
short | 整数值(正、负、0),>= 16 位,一般为16位 | 0, -8, 32767 |
long | 整数值(正、负、0),>= 32 位,一般为32位 | 0, 78, -217, 301713123194 |
类型 | 描述 | 例子 |
---|---|---|
long long | 整数值(正、负、0),>= 32 位,一般为64位 | 31705192721092512 |
float | 单精度浮点数,32位,IEEE 754 | 0.0, 3.14, 6.02e3 |
double | 双精度浮点数,64位,IEEE 754 | ^ |
etc. |
类型的本质是对二进制串的不同理解方式
https://godbolt.org/z/bP1rbWTae
作为计算机的直接操控者,CLI 会给你提供更加直接的操作
想想修改系统某处的时候,你是会选择手忙脚乱的翻 GUI,还是几行命令解决?
更何况,CLI 其实更加方便。当你熟练使用,并且配置舒服后,你会喜欢上 CLI 的。
Git是分布式版本控制系统的一大代表
本地版本控制系统
集中化的版本控制系统
分布式版本控制系统
文件后缀 | 解压命令 |
---|---|
.tar | tar -xvf <filename> |
.tar.gz | tar –xzvf <filename> |
.tar.bz2 | tar –xjvf <filename> |
.tar.xz | tar –xJvf <filename> |
怎么来的? RTFM!
gcc 全称GNU project C and C++ compiler
gcc是C语言的一种编译器
易混淆的三样东西
功能参数
完整命令
运行
项目构建
检查你的 week0
适合自己的才是最好的
在编程的时候,你会把大量时间花在阅读/编辑而不是在写代码上。所以,Vim 是一个多模态编辑器:它对于插入文字和操纵文字有不同的模式。Vim 是可编程的(可以使用 Vimscript 或者像 Python 一样的其他程序语言),Vim 的接口本身也是一个程序语言:键入操作(以及其助记名) 是命令,这些命令也是可组合的。Vim 避免了使用鼠标,因为那样太慢了;Vim 甚至避免用 上下左右键因为那样需要太多的手指移动。
这样的设计哲学使得 Vim 成为了一个能跟上你思维速度的编辑器。