C语言是windows底层语言,windows底层很多逻辑框架都是c语言编写,学习c语言可以看懂很多底层设计思路,在程序行业,工作内容越底层薪资越高。我们学习c语言最重要是为了学习c++,因为主要还是要用UE4C++开发。学习c++的难点不是c++本身 而是是c语言。很多人不是死在c++各种奇怪语法,而是卡在c语言上,从入门到放弃。
C语言的掌握是非常重要的,比如我们用UE4的蓝图开发游戏,这样需求下,需要的程序员的薪资不高,所处理的大多是简单逻辑业务,比蓝图高点的是UE4C++开发游戏,薪资明显高于UE4蓝图开发人员,比UE4C++再高点的是UE4C++开发工具类,编辑器类等等,比这个再高的是开发UE4引擎,或者是独立引擎,再高的是图形渲染和服务器等,在这个过程中你会接触到很多c语言库,还有c语言奇妙的语法,各种奇怪的宏,以及变态的指针语法,学习硬核c语言更容易看懂底层设计和架构,以及这些变态语法背后思路,不会为它那莫名其妙的语法所困惑,所以c语言非常重要,而市面上的c语言讲解,实在是太浅了,不足于让你看懂c语言的奇淫技巧。因此不管你是美术还是策划还是其他行业,只要你想做UE4 TA或者是想转入UE4程序员,图程,都可以先从c语言入手。
本教学讲解最硬核,最精华,最实战最接地气的内容,要比市面上其他同种c语言还要深入浅出,还要容易入门,使学员在了解c语言冰山一角的基础上了解c语言更加广阔的底层应用,并且理解它。
课程信息
教学总长度31小时左右,使用软件: VS2017、VS2019。
交流答疑
对于课程内容相关的疑问,提供有交流群,不但可以在群里与同学交流,分享资料,与教程内容有关的技术问题还可以进入答疑专区寻求帮助。老师一般会在2个工作日内为您解答。
基于C语言的扩展库案例
教程中将带着大家封装一套基于C语言的扩展库。
只要购买本套教程,可获得在商业项目中使用的完全授权,其中内容包括:
a、对路径的自由操作;
b、对内存自动扩展的容器;
c、对字符串操作的新扩展;
d、文件操作扩展;
e、日志系统;
f、guid操作;
g、对WindowsAPI的扩展。
git系统版本控制大型实战案例
综合所有课程内容的一套实战案例,教学员编写目前最主流分布式版本控制系统 git ,通过命令进行版本控制迭代更新等,其中包含:服务器引擎架构、客户端引擎架构、底层网络协议通信知识、多线程使用、版本控制、版本迭代、版本冲突、查看其他用户上传的日志、查看其他用户提交状态、注册、上传数据、下载数据、vs内存问题、cmd字体着色、日志系统、自定义windows菜单按钮等。该案例的教学代码,客户端7654行,服务端2445行,库有2345行,只使用windows原生库和C语言标准库,使用大量底层算法,手把手教大家去写,后面会有该案例的演示。一旦掌握此案例,将具备独立编写程序能力,用这种变态的思路去写,未来学习其他C源码,即使该代码再华丽,再变态,也基本上没有问题了,希望学员在起步的时候就领先科班学习C的小伙伴,在日后的工作中游刃有余。
教学核心知识点
位运算
详细讲解位运算的各种案例和习题,算法,如何优化代码等,要让学员理解底层技术的基础上理解如何在实际项目中产生作用。
宏的高级运用
讲解宏的各种高级替换案例,详细分析如何编写,如何实战。
c容器
会教大家如何搭建一套c容器,如何进行内存管理,如何分配内存,如何释放内存,如何泛化c容器等操作,这一章对我们理解c内存管理非常重要。
客户端引擎和服务的引擎
通过案例 git 为大家展示短链接如何搭建,如何定义和理解协议号,如何实现客户端和服务端的通信等知识。
课程目录
第一章:实现一个简单的程序
0101_如何安装vs2019和小番茄
0102_编写第一个程序HelloC
0103_什么是程序
0104_批处理调用自己的独立程序
第二章:变量类型
0201_C基本语法
0202_整形类型
0203_char整形类型
0204_浮点类型
第三章:变量
0301_全局变量
0302_理解左值和右值操作
0303_程序在内存的分布情况
第四章:常量
0401_整形常量
0402_浮点常量
0403_字符和字符串常量
0404_宏替换的高级运用
0405_const修饰常量
0406_typedef定义常量
第五章:其他关键字
0501_auto关键字
0502_register关键字
0503_static关键字
第六章:运算符
0601_算术运算符
0602_关系运算符
0603_逻辑运算符
0604_位运算与安保验证
0605_按位操作的详细讲解
0606_左移右移操作符原理
0607_赋值运算符
0608_符号的优先级问题
0609_家庭作业_位运算_2的整数次幂和奇偶
0610_作业_flag所有权掩码验证
0611_作业_二进进制和十进制相互转换
第七章:语句与函数
0701_条件语句
0702_循环
0703_普通函数和静态函数
0704_内联函数
0705_递归函数
0706_函数占位符
0707_作用域
0708_第七章的课堂后作业
第八章:指针和数组
0801_数组基础
0802_指针基础
0803_函数指针
0804_指针数组和数组指针
0805_多维数组
0806_指针的多级寻址
0807_指针作为形参和返回值
0808_数组作为形参和返回值
0809_作业_访问一维数组和二维数组的纵横元素思路
0810_作业_推导一维和二维的数组地址的偏移公式
0811_作业_实现对数组的裁剪操作
第九章:字符串操作
0901_字符串概念
0902_strcpy
0903_strcat
0904_strlen
0905_strcmp与ASCII表
0906_strchr
0907_atoi
0908_itoa
0909_strtok
0910_strstr
0911_移除字符串
0912_strspn
0913_替换字符
0914_printf底层原理
第十章:枚举
1001_枚举在程序中作用
1002_枚举的定义
1003_遍历枚举
十一章:结构体
1101_如何理解结构体
1102_结构体定义和声明
1103_结构体初始化
1104_结构体作为函数参数
1105_结构体作为指针
1106_位域
1107_结构体在内存中的分布问题
1108_共用体
1109_联合体和大小端实战
十二章:文件读写
1201_输入和输出
1202_文件写入
1203_文件读取
1204_读取模式
1205_fseek
1206_读写扩展
1207_错误处理
1208_文件拷贝和删除文件
十三章:预处理
1301_预处理cpp
1302_预定义宏
1303_region
十四章:内存管理
1401_malloc和free
1402_calloc
1403_realloc
1404_memset
1405_memcpy
十五章:二进制码操作
1501_真数和二进制机器数
1502_原码
1503_反码
1504_补码
1505_取值0128深入理解
十六章:文件操作和磁盘信息
1601_mkdir
1602_rmdir
1603_getcwd
1604_chdir
1605_getdiskfree
1606_getdrive
1607_getdrives
1608_chdrive
1609_access
1610_rename
十七章:程序终止
1701_assert
1702_abort
1703_exit
十八章:实战-c容器
1801_c容器架构
1802_如何对c容器的数据进行分配内存
1803_如何对c容器进行元素添加
1804_释放c容器的堆内存
1805_对内存自动扩容操作
1806_字符串容器思路
1807_封装字符串容器为库
1808_泛化c容器
十九章:文件遍历
1901_文件递归查找框架搭建
1902_finddata_t
1903_文件属性
1904_寻找指定路径下的所有文件
1905_递归子目录下的所有文件
二十章:搭建简单git版本系统
2001_部署开发环境库
2002_引擎的最基础架构
2003_实现git_init语句
2004_对窗口的字体进行着色
2005_实现git_remote_add_origin语句
2006_git引擎初始化
2007_git --global user用户注册
2008_让日志系统支持任意参数打印
2009_自定义windows鼠标右键添加按钮
2010_卸载程序卸载注册表
2011_程序安装与卸载功能封装与实现
2012_git clone命令
2013_编写path生成库
2014_测试git clone 功能
2015_git add上传到仓库
2016_guid库编写
2017_用cmd窗口打印动态百分比
2018_git commit -m命令编写
2019_git push -u origin master命令
2020_版本列表
2021_本地存储用户配置信息
2022_定义项目路径和远端url
2023_搭建服务端引擎
2024_定义服务端底层通信协议框架
2025_定义客户端底层协议框架
2026_windows多线程
2027_客户端和服务端底层握手
2028_客户端和服务端的一次短链接
2029_定义服务器和客户端的版本上传协议
2030_定义上传版本列表协议
2031_服务器数据储存和处理
2032_客户端和服务器同步操作
2033_客户端本地存储和服务端版本还原
2034_实现git log
2035_实现git status
2036_定义客户端git pull协议
2037_定义服务端git pull协议
2038_测试客户端和服务器的git pull
2039_客户端发送验证冲突请求
2040_服务端验证冲突请求
2041_客户端向服务端请求版本列表
2042_只提交有变动的文件
2043_整合库
2044_整合日志系统到库
2045_c手把手入门硬核c语言完结
多端支持
课程支持在ios以及Android端设备播放,您只需要登录各大手机应用平台,搜索“ABOUTCG学院”即可下载安装应用。
课程要求
本教学需要您对基础的3D概念和术语有一定的了解,比如Polygon(多边形),Edge(边),Face(面)Axis(轴向),Space(空间),Map(贴图)等。