半路出家, 我的iOS自学之路-1-C语言
- 我是一只绝望的菜鸟, 只学过Java, 半路出家, 自学iOS.
- 以下是我读完《Objective - C 编程》(第2版)的读书笔记
- 博客中出现任何差错, 遗漏, 还请您在评论中告诉我
- 群号:653592167, 欢迎自学iOS的人加入, 一起交流, 共同成长
插一句: Objective-C是C语言的母集合.
意思就是说C语言的各种用法都可以在OC的编辑器里使用. 当时我不知道”母集合”是什么意思, 查了之后也一知半解的, 于是我在学iOS之前又花了一个多月的时间读完了一本C语言的书.
这里就列举一些C语言里的一些规范吧,或者说是概念.
C语言里面的一些规则
.h文件
也叫"头文件", 是声明 全局变量/静态变量/函数声明 的地方. 这些元素被定义在"头文件"里, 其他的文件"#include"了这个"头文件"之后,
就能使用这个"头文件"里的元素了.
比如: 定义了一个 A.h 的文件, 我在 B.h 或者 B.c 里 #include “A.h”, 我就能在 B.c 里调用 A.h 里的 枚举, 变量, 函数.
.c文件
也叫"源文件", 是定义 全局变量/静态变量/函数声明, 使用变量, 实现函数代码, 使用函数 的地方.
补充:
- 在 头文件 里声明 全局变量 的时候, 需要用 “extern”, 然后在对应的 源文件 里对它进行赋值, 比如
// 头文件
A.h
extern int a; // 声明变量
// 源文件
A.c
int a = 10; // 定义变量
- 一个 “头文件” 对应 “唯一” 一个 “源文件”, 也就是一个 A.h 只有一个 A.c. 这就是规矩. 至于为什么, 就只有去看另一篇博客, 讲 编译器 Makefile, Makefile经典教程(掌握这些足够) .
结构体 / 枚举
- struct 结构体
- struct OBJC {
int a;
char *str;
}; // 定义个结构类型 - struct OBJC st; // 定义一个 “struct OBJC” 类型的 结构体变量, 变量名叫 st
- typedef struct OBJC CNObj; // 定义了一个 “struct OBJC” 类型的别名, 叫 CNObjc;
- CNObjc cnSt; // 定义了 一个 CNObjc 类型(又名”struct OBJC”)的变量, 变量名叫 cnSt
- CNObjc *pcnSt = &cnSt; // 定义了一个 结构体指针 类型的变量, 变量名叫 pcnSt
- 使用 结构体 的 成员变量
- cnSt.a = 10; // 变量通过”点”来获得 成员变量
- pcnSt->a = 20; // 指针变量通过”->”来获得 成员变量
- struct OBJC {
- enum 枚举
- enum emA {
CONST_AA, // 默认赋值0, 后面的 常量的值 依次自动 递增
CONST_BB, // 1
CONST_CC // 2
} // 枚举, 枚举类型 enum emA, 里面的成员都是 常量. - enum emB {
// CONST_A = 13, // 手动设置初始值, 后面的 常量的值 依次自动 递增
CONST_B, // 14
CONST_C // 15
} - CONST_A // 可以直接使用
- 枚举中的 常量 不能重复定义
- enum emA {
以上就是我在 OC 里经常会看到的, 接触到的 C语言 的一些知识.