1 C语言
1.1 C语言起源
作者:丹尼斯 里奇
在贝尔实验室发明C语言。
代表作品:《The C Progrmming Language》
1.2 C语言优点
语法易懂,应用广泛,可移植性,更强的操控性
1.3 应用领域
操作系统,编译器,游戏(现在一般用C++),嵌入式,桌面程序。。。
1.4 C语言标准
一堆,C89(第一个官方版本),C99(第二个官方版本,我们打算使用的标准),C11(第三个官方版本)
1.5 C语言使用步骤
- 确定需求
- 设计程序
- 编写代码
- 编译(链接编译)
- 运行程序
- 测试与调试
- 维护与修改
(我们写的时候一般啥也不想)
1.6 C语言的生成过程
1.7 集成开发环境(IDE)
Visual Studio CLion GCC Qt Creator Dev-C++ C++ Builder
1.8 进制与位
常用进制:二进制(BIN),八进制(OCT),十进制(DEC),十六进制(HEX)
位:32位操作系统,64位操作系统
2 Visual Studio简单使用
2.1 新建项目
可以在两个地方新建项目。
选中空项目。
2.2 误关解决方案资源管理器
2.3 基础信息
Debug版本多一些调试信息, Release版本优化默认比Debug版本高一些。
x86是三十二位的程序,x64是六十四位的程序。
2.4 创建C文件并配置
配置目的,改成静态编译,不依赖运行池。
静态编译与动态编译的区别:
静态编译就是在编译时,把所有模块都编译进可执行文件里,当启动这个可执行文件时,所有模块都被加载进来;
动态编译是将应用程序需要的模块都编译成动态链接库,启动程序(初始化)时,这些模块不会被加载,运行时用到哪个模块就调用哪个
静态库
优点:
代码的装载速度快,执行速度也比较快
缺点:
程序体积会相对大一些
如果静态库需要更新,程序需要重新编译
如果多个应用程序使用的话,会被装载多次,浪费内存。
动态库:
动态链接库:在应用程序启动的时候才会链接,所以,当用户的系统上没有该动态库时,应用程序就会运行失败
优点:
多个应用程序可以使用同一个动态库,而不需要在磁盘上存储多个拷贝
缺点:
由于是运行时加载,可能会影响程序的前期执行性能
2.5 测试程序
程序的位置。
2.6 程序内容
main()函数:不是最早执行的,被操纵系统的启动代码调动,tls也在main函数前面运行,也不一定要叫做main()函数。
int :一个整数,包括整数负数 和 零。
C语言对类型要求没有那么严格。
注释 类型 函数 等等都可以在C语言中学习到。
#pragma once 解决重复定义的问题
F5 运行
F9 下断点
F10 单步步过
F11 单步步入
语法错误,语义错误。
3 补充
- 什么是可移植性?
程序在新平台下,使用为新平台设计的C编译器对程序进行编译,在不修改代码的情况下,重新编译后,程序将运行良好,则该程序是可移植的。 - 编译器是做什么的?
把源代码转换成可执行代码的程序。 - 连接器是做什么的?
一个 C 程序可能是由多个分别编译的部分组成,这些不同部分通过一个通常叫做连接器的程序合并成一个整体。 - 什么是语法错误?
使用的C语言语法与规定相违背,无法运行。 - 什么是语义错误?
逻辑错误,可以运行,但不能产生预期的结果。 - 4种运行库编译选项的区别?