C语言预备

第一课

1 dos命令

2 path环境变量

3 markdown语法

1 标题
#加上空格(几个#几级标题),或者ctr+数字(1,2,3,4,5,6,)
​
2 列表
+按下空格即可,列表下的下一级列表可以按回车直接按tab键
+ 列表
  + 你好美
  + 你好帅
  
3 代码段
三个点```(ESC下面那个键)
​
4 文字属性
 颜色
$\textcolor{red}{文字}$
$\textcolor{rgb(255,0,255)}{文字}$
​
5 图片
 图片路径
   相对路径
     ../ 上一层路径
     ./ 当前路径
   绝对路径:带盘符
   
6 表格
|姓名|年龄|编号|住址|  在按下回车,表格就出来了
//简单方法: 右键插入表格
​
7 了解内容
    链接 
   [百度两下](www.baidu.com)
    脚注
   帅哥[^1]
   [^1]: 和..一样的人
    表情  :  :加上表情的英语单词
   :smile:
   :sweat_smile:
    html标签(有学过的可以直接使用,没学过的直接跳过)
 
8 画图工具链接https://www.processon.com/


第二课

怎么用vs2022

vs2022是IDE(集成开发环境),不是编译器

1 创建项目

  • 选空文件,配置新项目时一个解决方案下面可以存在多个项目

2 常用窗口

  • 视图

    • 解决方案资源管理器

    • 输出 ,错误列表(用拖动把这两个放一起)

  • 项目名字

  • 引用: 程序调用其他二进制文件中的函数

  • 外部依赖项: 代码文件依附的其他头文件

  • 筛选器: 帮助写代码人归类处理代码文件,不存在真实的文件夹(学会自己规划筛选器)

    • 头文件:.h文件

    • 源文件:.c 文件

    • 资源文件:素材之类的(图标ico——拷贝到文件当前所在目录,右击添加资源导入图标,音乐之类的)

3 项目文件

  • xxx.vcproj: 工程文件,主要描述工程的各项属性

  • xxx.vcxproj.filters: 视图文件,描述项目中的筛选器(筛选器配置文件)

  • xxx.vcxproj.user: 用户配置文件,打开项目 窗口位置,窗口布局信息(打开项目配置不变)

4 解决方案文件

  • xxx.sln 文件: 解决方案管理文件

  • .vs文件: 可能是隐藏文件,一般发项目给别人可以删掉这个东西

5 生成的exe文件路径

  • Debug版本:调试版

  • Release版本:发布版

  • x64: 64位操作系统(发别人)

  • x86:32位操作系统

6 发和打开别人的项目

  • 直接点击:xxx.sln

  • 直接点击:xxx.vcproj

  • 发代码发整个压缩文档

7 操作

SDL检查(用来忽略因为vs的改进的一些函数会导致报错问题)
+ 平台工作集
+ C/C++标准
+ 字符集
   unicode编码
   多字节编码
+ 参数提示
+ 快捷键注释
+ 垂直编辑: alt +鼠标左键移动
+ 重复上一行代码: ctr+d
+ 代码查找:  ctr+f (还可以代码替换)
+ 移动行: alt+↓


第三课

1 进制与进制转化

常用进制

  • 十进制:0123456789

  • 二进制:01

    • 0b开头的数字

  • 八进制:01234567

    • 0开头的数字

  • 十六进制:0123456789ABCDEF(A读幺幺)

    • 0xAFF

  • 其他进制,其实就是不同的单位表示法

    • 时间: 60进制 60s=1min 60min=1h

    • 天数: 24h=1day

    • 数量: 一箱=12瓶

    • .......

进制转换

  • 科学法

    • hex: 十六进制

    • dec: 十进制

    • oct: 八进制

    • bin:二进制

手工法

  • 十进制转其他进制: 短除法

  • 其他进制转十进制:加权法

  • 其他进制之间转换

    • 二进制转八进制: 三位二进制位代表一位八进制位

    • 二进制转16进制: 四位二进制代表一位进制进制

2 存储单位

位bit(比特): 一个二进制位,只能存储0和1

字节byte: 8个进制位为一个字节(B),常用单位换算

  • 1B(bytes)=8bit 字节

  • 1KB=1024B 千字节

  • 1MB=1024KB 兆字节

  • 1GB=1024MB 吉字节

  • 1TB=1024GB 太字节

  • 1PB=1024TB 拍字节

  • 1EB=1024PB 艾字节

  • 1ZB=1024EB 泽字节

  • 1YB=1024ZB

  • 1BB =1024YB

疑问: 买的1TB硬盘为什么不是1TB

因为厂商不是用1024去换算,他是用1000换算

256G=256000000000B

计算机实际的计算方式是用1024--->256000000000B/1024/1024/1024约等于238

3 二进制编码

所有的数据在计算中存储都是用补码的形式存储的

机器数

一个在数在计算机中的二进制表示,机器数带符号的

  • 最高位是0: 正数 3: 0000 0011

  • 最高位是1: 负数 -3: 1000 0011

    (但是机器数没办法计算所以有了补码)

原码

机器码:二进制码

原码就是机器码引入符号位

  • 最高位是0: 正数

  • 最高位是1: 负数

反码

原码符号位不变,其他位取反

补码

补码=反码+1

计算机中所有数据存储都是用补码存储,只是正数三码合一

!!!注意点: -0编码表示所有的最大负数,具体到具体的数据范围的时候,负数是要比正数多一个

4 C语言数据存储

防止存储的数据溢出(超过了存储范围)

  • int: 整形--->4个字节(long=int)

  • char: 字符-->1个字节

    • 1个字节8位

    • 最大正数: 0111 1111 +1 -1 =1*2^7-1

    • 最大负数: -127-1 =-128(多了一个-0编码)

  • unsinged char: 无符号 只有正数

    • 最大正数: 1111 1111+1-1 2^8-1=255

  • float:单精度--->4个字节

  • double双精度--->8个字节

  • 注:short--->2个字节;longlong--->8个字节

小数的数据存储

了解一下,C语言分为两种小数

  • 单精度小数(float): 小数末尾加个f表示单精度小数 1.1f

  • 双精度小数(double): 编译器中写的小数默认位双精度 1.1

计算机中存储小数是用指数和尾数方式去存储

小数转二进制

为什么小数不精准

二进制数对应的十进制数
0.00000
0.00010.0625
0.00100.125
0.00110.1875
0.01000.25

大小端存储(了解)

计算机中存储正数分为两种形式

  • 大端模式:数据的高字节保存在内存的低地址中,数据的低字节存储到高地址中

  • 小端模式:数据的高字节保存在内存的高地址中,数据的低字节存储到低地址中

后续网络数据传输都是采用大端模式,通过计算机内存查看的方式进行验证


第四课

程序编译4个过程

整个程序的编译过程

  • 预处理过程

  • 编译过程

  • 汇编过程

  • 链接过程

1 预处理阶段

gcc -E xx.c -o xx.i

修改xx.c文件,把#include 指令包含的头文件中内容直接插入到我们的文件中,得到的一个新的C语言文件,通常预处理后产生的新文件用.i作为结尾

  • 所有注释用空格替换

  • 所有#define删掉,展开所有的宏

  • 处理所有的条件编译(#if #ifdef)--->后面讲

  • 处理#include,展开包含

#include <stdio>
#define MAX 100
int main()
{
    MAX;
    return 0;
}

上述代码预处理后生成的文件test.i 部分内容:

注意: 预处理不做语法检查,代码有错误检查不出来

2 编译过程

gcc -S xx.i -o xx.s

编译过程就是把高级语言翻译为汇编语言的过程,主要完成以下内容:

  • 词法分析

  • 语法分析

  • 语义分析

  • 源代码优化

  • 目标代码生成

  • 目标代码优化

编译过程会检查出所有的语法错误。

test.i 编译成为汇编代码

3 汇编过程

gcc -c xx.s -o xx.o

把汇编代码转换成为机器语言,生成目标文件,这个文件打开一般是乱码形式

4 链接阶段

gcc xx.o -o xx.out

将所有的目标文件和需要的库连接到一起

  • 静态库(xx.lib)

  • 动态库(xx.dll)

window 安装gcc

gcc是win系统的编译器——可以用记事本写代码

下载MinGW:MinGW - Minimalist GNU for Windows download | SourceForge.net

配置path环境变量: D:\tools\MinGW\bin

下载gcc cmd键入: mingw-get install gcc

验证gcc安装是否成功: 键入 gcc -v 显示相关版本信息,代表安装成功

vs cmake项目

了解一下,了解内容,掌握以下内容

  • 打开别人的cmake项目

  • 运行cmake项目

  • 36
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值