哈喽 大家好 我叫人宅 很高兴和大家一起分享一下我们的这套教程 C STD(底层c语言标准库)。
这套课程是c语言标准库的讲解,主要涉及到的知识点有,时间时区,内存管理,算法,宽字符API,数学库,字符检测等,详细见目录。
你可能会问
:老师,为什么要学习这套课程呢?C语言我会呀。
这边我解答一下。这套教程可不是简简单单的讲解C语言哦,在这套教程之前我们就出了一套手把手入门硬核c语言 那套虽然基础但是已经和市面上的教程不一样了,更加硬核。
而手把手入门C std 是在 硬核c的基础上的进阶版本,更更硬核的教程。我们会全面讲解C 标准库,在开发独立引擎或者渲染器或者原生分布式服务器的时候,我们会用到大量的c语言 API。
这也帮助本来是熟悉UE4API的学员顺利过渡到c 原生API的课程。如果讲解市面上存在的教程,真的就没有必要再制作这部教程,因为录制教程真的很辛苦,要做就做硬核,要做就做不一样的。
:老师,学完这些我能做什么?
能做的太多了,即使不会C++也不妨碍很多学员可以用该库内容去做引擎或者服务器等,C++只是比C在制作服务器上更加轻松。我们在做服务器或者引擎的时候一般是将这两者语言进行混用的。
学完这些库可以做的太多了,比如算法,像二维码算法,或者像openssl加密,做完就可以提供其他人使用,除此之外还可以去看懂很多底层算法代码所使用到的c语言API,至少知道这套算法底层用的API是什么意思,而不是到处去查,查了不一定能懂。我们的UE4底层就是封装着很多c语言第三方库,比如windows sockect(通信),openssl(UE4打包pak加密)等就是c语言写的。
可以这样总结,c语言就是一套底层语言,最接近汇编的语言,也是效率最高的语言,也是可以嵌入硬件的语言。
C语言的难度是大于C++的,很多人认为c++难,其实c++难在了c语言,不是c++,比如各种算法,其实这些都是c语言的课程,不是c++,我们这套课程会讲解算法哦~
还有内存分配,也是c语言的;
我们这套课程全面攻克内存分配,让您可以自由操控内存,想将内存捏成什么样就什么样,详细的情况我们在目录有介绍:
高级宏替换应用,宏定义的跨平台,预处理等这也是c语言的。
任意参数和泛化 也是c语言的内容
指针以及指针的变态用法 也是c语言的内容
各种变态的位运算 也是c语言的内容
windows线程 c语言写的
mysql c语言写的
OpenGL c语言写的
数学库 c语言写的
通过我这么一解释,我们已经将C++最本质最核心的东西呈现给大家,那就是C语言。
为什么有些程序员即使有10年工作经验,也不敢说精通c语言。
:C++的难度在哪里呢?
难在奇怪的高级语法和变态的模板上了等,因为核心难度被c语言抢走了,C++只能通过语法和模板还有面向对象的特性,凌驾于C语言之上。
掌握c语言再去学C++,或者其他语言,如探囊取物。
好,那现在我们来对每个章节做介绍:
第一章 ctype库讲解
我们经常会遇到需要判断字符的问题,比如判断当前字符是字母还是数字,判断是大写还是小写,是否有标点符号,该字符是否为十进制或者十六进制。应用的案例也很多,比如账户判断,密码判断,各种加密算法等,该库的作用非常大,掌握该库对我们以后做开发事半功倍。
第二章 float库讲解
本章节会讲解关于float库的相关内容,其中会涉及到关于float内部原理等讲解
第三章 limits库讲解
本章节会讲解 关于常见类型的范围在计算机中是如何定义的,本章节会讲解各种类型限制范围等
第四章 clocale库讲解
本章节开始讲解时区和货币,每个时区基本上对应着他自己的货币,本章我们开始讲解各种时区的转换和转换规则。
第五章 数学库讲解
本章节开始讲解数学库,数学库不仅在算法,在游戏开发,图形开发,图像处理,AI人工智能等都有极大的应用前景。了解这些库底层的数学,方便我们在日后生活中游刃有余,本章节就是在讲解数据库,为入门的学员打下扎实的基础。
第六章 setjump库讲解
本章节会讲解 设置跳跃的函数,它和我们的goto很像,但又不一样,它可以直接设置我们的函数,进行跳跃。虽然规范中已经提及不让使用goto和这类函数,但是很多底层算法中依然可以见到他们的身影,还是有必要去讲解他们的。
第七章 stdarg 库讲解
这一章节我们开始讲解stdarg 这个库,它可以给我们提供传递任意参数。最典型的就是我们的printf()这个函数原型。
第八章 stddef库讲解
这一章我们讲解c语言的内存偏移,和以后开发中常见的c语言API
第九章 time 库讲解
这一章我们开始详细讲解时间,本地时间,格林威治时间,各类地区时间的转换,以及我们怎么设置热点优化方法
第十章 stdlib库讲解
这一章节我们开始讲解stdlib 这个是我们经常会用到的c语言库,其中会讲解关于路径的操作,左移和右移函数,随机。
第十一章 stdio 库讲解
stdio是我们经常使用到的一个库,里面关于IO的函数,其中我们会讲解关于流,stdout stderro stdin,以及如何重定向io,深入理解流的IO操作等
第十二章 深入实战内存操作
这一章我们开始进入内存实战操作,目的是让学员彻底搞明白怎么操作内存,如何自定义资源的数据结构,并且将资源数据结构存储到本地磁盘,我们会在本节课程种举一个案例,并且我们还会讲解如何加密,如何解密我们的数据。
第十三章 宽字符串函数讲解
这一章我们开始讲解与窄字符串相对的宽字符串相应API,我们会讲解如何解决编码格式乱码问题,如何对宽字符串进行操作比如,拷贝,切割,移除等,最后我们会对wchar进行详细讲解。
第十四章 算法
这一章我们开始讲解算法,什么是算法,算法能干什么,算法的思路和方法,以及常见的算法案例等
第十五章 封装我们的C库
这一章我们开始封装我们的API函数库。我们会将上面讲解的很多案例内容封装到该库,比如编码格式转换,时间转换,宽字符API函数算法等。
目录
第一章 ctype库讲解
1-1 字符串的分类
1-2 检测字符是否为十进制数字
1-3 检测字符是否为字母
1-4 检测字符是否为字母或者数字
1-5 检测字符是否为控制字符
1-6 检测字符是否为图形显示字符
1-7 检测字符是否为小写字符
1-8 检测字符是否为大写字符
1-9 检测字符是否为可以打印
1-10 检测字符是否为标点符号
1-11 检测字符是否为空格字符
1-12 检测字符是否为十六进制
第二章 float库讲解
2-1 float内存的分布和公式
2-2 获取精度的位数
2-3 获取四舍五入后最大不变位数
2-4 获取基数为2和10的最小负整数
2-5 获取基数为2和10的最大整数
2-6 深入理解有效尾数和最大的浮点值
2-7 最小的浮点值
第三章 limits库讲解
3-1 Char的范围宏
3-2 Int的范围宏
3-3 Short范围宏
3-4 long范围宏
3-5 float范围宏
3-6 精讲解limits文件
第四章 clocale库讲解
4-1 locale库函数深入讲解
4-2 lconv结构深入讲解
4-3 修改本地区域性语言
4-4 区域与货币
第五章 数学库讲解
5-1 三角函数
5-2 反三角函数
5-3 双曲线函数
5-4 反双曲线函数
5-5 指数幂运算
5-6 对数运算
5-7 开平方根
5-8 modf和fmod
5-9 求绝对值
5-10 向上取整和向下取整
5-11 四舍五入
5-12 取最大和最小
5-13 极限与检测
第六章 setjump库讲解
6-1 goto标签跳跃
6-2 通过jmp实现函数之间的跳跃
第七章 stdarg 库讲解
7-1 实现char类型任意参数传递
7-2 实现任意类型的任意参数传递
第八章 stddef库讲解
8-1 ptrdiff_t
8-2 size_t
8-3 wchar_t
8-4 NULL和内存分配
8-5 内存偏移
第九章 time 库讲解
9-1 clock_t
9-2 格林威治时间
9-3 时间存储结构
9-4 asctime
9-5 time
9-6 localtime
9-7 clock
9-8 ctime
9-9 difftime
9-10 gmtime
9-11 mktime
9-12 strftime
9-13 日期格式详解
9-14 timespec_get
9-15 _get_tzname‘
第十章 stdlib库讲解
10-1 随机
10-2 atexit
10-3 类型转化为字符串
10-4 div
10-5 _swab
10-6 at_quick_exit
10-7 _rotl
10-8 _rotr
10-9 _wmakepath_s和_makepath_s
10-10__wsplitpath_s 和_splitpath_s
10-11 _wfullpath 和 _fullpath
第十一章 stdio 库讲解
11-1 文件流操作
11-2 文件的逐字节读取
11-3定义输出流的缓冲区规则
11-4 fputs
11-5 fgetpos和fsetpos
11-6 fseek
11-7 重定向标准输出流
11-8 重定向标准输入流
11-9 重定向标准错误输出流
11-10 fwrite和fread
11-11 ftell
11-12 rewind
11-13 puts系列
11-14 setbuf
11-15 创建临时流
11-16 创建本系统唯一的临时文件名
11-17 get系列
第十二章 深入实战内存操作
12-1 自定义引擎资源存储原理
12-2 序列化自定义数据结构类型到本地磁盘
12-3 反序列化自定义数据结构类型从磁盘到内存
12-4 如何切割内存豆腐
12-5 加密我们的数据明文
第十三章 宽字符串函数讲解
13-1 宽字符
13-2 wcslen
13-3 MultiByteToWideChar
13-4 WideCharToMultiByte
13-5 wcscpy
13-6 wcscat
13-7 wcscoll
13-8 wchar库的API讲解
第十四章 算法
14-1 算法的概念
14-2 递推法
14-3 递归法
14-4 穷举法
14-5 贪心算法
14-6.二分法和冒泡排序
14-7.二分查找
第十五章 封装我们的C库
15-1 封装time库到lib
15-2 封装time系列的接口
15-3 测试封装的time库接口
15-4 封装宽字符转换接口
15-5 测试宽字符API
15-6 c std结束语