C语言核心编程—168人已学习
课程介绍
C语言并不是一个高级语言,它实际上属于高级语言与低级语言之间的中间语言,它直接与内存打交道,丰富的数据类型、运算符,但是C语言绝非是一门简单的语言,相反掌握好C语言需要花相当大的精力。本课程从案例出发,结合工程实践场景,针对性的展示了使用C语言进行系统级开发的经验与工程技巧,展示了printf、malloc等C语言核心库函数的实现原理,并在Win32平台上实现了CRT(C语言运行时)的仿真原型。
课程收益
1.通过C语言理解计算机装置本身,并能熟练掌握C程序开发的基本技能。2.从工程开发角度深入讲解C语言各种似是而非的bug。3.通过仿真模型建立起C语言核心库,为开发高质量C语言程序奠定基础。
讲师介绍
夏曹俊 更多讲师课程
夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算机视觉,嵌入式图像处理,云安全审计项目,比赛鹰眼系统,主编出版过《C++实训教程》,并同时熟悉php,c#,java,安卓项目研发。
课程大纲
第1章:C语言与机器级的数据表示
1. 引论 可以加入qq群中交流和下载代码 839886059 30:47
2. windows的cl编译与linux的gcc编译与若干初学者常见错误 26:33
3. 预编译指令(directives)、函数(function)与语句(statement)概念以及多行 13:19
4. “若存在15×4=112,则系统采用的几进制?”——机器中数的表示 9:27
5. 计算机是模运算系统——“按位取反,末尾加1”的由来 12:44
6. -2147483648<2147483647问题的完全剖析——C语言整型变量的特征 7:07
7. 浮点数不能使用相等判别的原因完全剖析:C语言float类型特征(floatfield代码演示) 22:49
8. 标准C变量定义位置、格式化输出与乘法溢出:C语言变量特征的若干问题 12:04
9. 输出宽度引发的bug谈Scanf和printf的若干常见问题 15:18
10. 表达式、左值与语句 13:28
第2章:C语言核心基础:分支、循环、函数、数组和指针
1. 分支语句与名企笔试面试的基础要点 8:12
2. 3种循环语句与goto法实现循环移动QQ窗体:goto的工程意义解读 27:29
3. 分支循环基础知识-典型习题讲解 36:50
4. 函数定义、声明、调用与一个bug引出的callstack的调试演示 11:56
5. C语言只有指拷贝形式的参数传递-函数实参和形参 9:27
6. 函数与递归程序设计:递归函数本身就是解决方案-Hannoi问题 40:36
7. 设int a[5]3[a]可以访问吗?-数组的定义与应用 10:20
8. C99的指定初始化与sizeof测定数组长度、多维数组定义 10:12
9. C语言只有指拷贝-指针的深入详解 21:16
10. 指针的运算与数组名和指针关系辨析 12:15
11. 字符串、字符数组与指针数组和指向指针的指针由来 28:27
12. 字符数组作为缓冲区与缓冲区溢出现象剖析 17:26
13. 字符、数组、函数基础知识-典型习题讲解 26:26
14. 指针基础知识-典型习题讲解 14:58
15. 结构体与深拷贝、浅拷贝原理剖析 16:04
第3章:程序的转换与机器级表示
1. 高级语言转换成机器级表示:基于objdump的实战分析 27:15
2. 可执行文件的存储器映像:为什么C90不允许代码浮动 9:55
3. 函数栈帧究竟是什么?——保护现场、参数传递原理的详细剖析 44:14
4. 从存储映像角度理解C程序变量布局:全局、栈区、堆区变量由来的完整分析 9:29
5. 为什么函数内部不能分配过长的数组?——数组类型的空间分配与if 13:51
6. 局部变量为什么不是符号与Link error的本质解释——C语言与链接器 11:40
7. 强弱符号连接定义 10:18
8. 多重定义符号解析举例 5:33
9. 重定位到应用程序加载 6:43
第4章:名企入职C语言习题集锦
1. 右移运算等于除法吗? 4:37
2. 机器中数的进制问题-2的100次方mod7 8:50
3. C语言的位运算与数值存储的典型问题 4:11
4. C语言程序运行时间的估算问题 18:00
5. 引论问题完全剖析 17:49
6. 32位系统下的经典C语言问题 20:07
7. C语言中的动态内存分配:malloc、calloc和realloc的用法 9:28
8. register增强、const、符号定义——C语言与C++混合编程中的若干问题汇总 12:02
第5章:进阶提高篇:C程序运行结构完全剖析
1. 透彻掌握C语言代码在机器中的分布是高级程序员的基本功 10:01
2. as ld完整编译C语言:printf的函数体在哪里? 13:31
3. 代码段、数据段、只读段本质论:C程序与可执行文件一一对应的完全剖析 25:39
4. C语言链接错误的本质分析——强弱符号:符号对应与链接库识别 13:06
5. C语言链接错误的本质分析——符号未定义错误:多文件链接 23:13
6. 链接的本质:非main入口点和printf函数体的简易实现 14:00
7. 线性地址、逻辑地址、物理地址:C语言可执行文件运行原理剖析 18:44
8. 栈空间和堆空间详解:大对象的双向拷贝和malloc的简易实现 23:36
9. “内存四区”的函数栈帧演变过程的完全图示-C语言的“内存四区”点评和剖析 33:56
10. gdb完全手工跟踪C语言函数栈帧演变:缓冲区溢出原理完全剖析 18:20
11. 可执行文件存储映像的工程应用:补丁破解原理解密 11:24
12. 一个C语言运行库的仿真实现 01:21:02
大家可以点击【 查看详情】查看我的课程