01-C语言进阶篇与常见面试题笔记

2022-10-04 17:10:24 浏览数 (1)

01.工具原理及C语言语法基础

1.1 - 计算机指令概述及C语言如何学

计算机工作方式简介

可以把内存暂且人认为是存储指令的仓库,cpu从仓库中取出指令一条条执行,cpu需要通过地址找到内容,所以需要一个地址线

,通过地址线的选择选到仓库中的某一个位置,cpu向仓库发出读写的命令,内存就会通过一条数据线与cpu进行相应的读写操作。

内存成本高,速度快 外存成本低,速度慢,但是容量大

问题:CPU里的指令长什么样?

ARM处理器的指令,以-32bit的指令为例

对于32位的理解:可以理解为有32个盒子,每个盒子有两种选择,2^32个选择

汇编语言不便于阅读

1.2 - 编译器介绍及系统环境变量

翻译官有哪些?

  • 微软阵营(闭源):MSVC(vs编译器内部标准)
  • 开源组织阵营GNU:gcc

为了偏向于底层的开发所以选择WinGW进行学习。

minGW

安装教程参考:https://blog.csdn.net/wxh0000mm/article/details/100666329

MinGW 的全称是:Minimalist GNU on Windows 。它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API 和 MSYS,因此可以将源代码编译生成 Windows 下的可执行程序,又能如同在 Linux 平台下时,使用一些 Windows 不具备的开发工具。一句话来概括:MinGW 就是 GCC 的 Windows 版本 。

在wingw中include的头文件在哪里?

注意:WinGW的工具链有时可能不是放在根目录的include文件中,而是放在下面的工具目录中,有的版本可能放在根目录。

注意要将bin文件路径添加到环境变量,里面包含gcc.exe

1.3 - 编译器工作流程介绍

在要编译的a.c文件目录下命令行输入gcc a.c -o b.exe -v,其中加上-v的作用是查看编译器的工作流程。

PS:gcc a.c -o b.exe -v之间各个命令的顺序可以调换,比如写成gcc -v -o b.exe a.c

终端反馈分析:

前面的部分代码是gcc的版本信息,可以忽略

首先gcc通过cc1.exe程序生成了ccfJngfc.s汇编文件(注意与第一节课的arm汇编体系不是一个体系)

下一步gcc做了个头文件的处理,详情见后面章节

之后gcc使用了as.exe程序将ccfJngfc.s汇编文件生成了ccYI261D.o文件,最后转换成exe文件。

翻译官的工作流程

02.C语言空间操作篇

2.1 - 数字进制表示法01

03.C语言函数设计篇

04.C语言常见面试题篇

0 人点赞