c/c++:windows平台下依赖的动态库,c底层是汇编语言,程序断点调试,反汇编,vs快捷键

c/c++:windows平台下依赖的动态库,c底层是汇编语言,程序断点调试,反汇编,vs快捷键

2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c++的话,
我所知道的周边的会c++的同学,可手握10多个offer,随心所欲,而找啥算法岗的,基本gg
提示:系列c++学习的基础和高阶知识,用于公司生产实践中,实实在在的公司部署产品要用的,因为c++速度快,
而java和Python速度慢,自然往硬件里面部署算法啥的,都得用c++或者c,因此本科学的c很重要,后来的Python或者java就没有那么重要了,
c/c++系列文章:
【1】c++:c语言优缺点,visual studio2019如何新建项目,写hello world程序
【2】c/c++:gcc安装,gcc编译hello world文件,system函数调用系统命令,sleep函数
【3】linux下gcc的编译过程和功能,预处理,编译,汇编,链接,.c预处理为.i文件.s文件.o文件.exe文件


c/c++:windows平台下依赖的动态库

下载一个软件:depend.exe
在这里插入图片描述
完事就可以查看hello.exe执行所依赖的第三方库了
直接打开hello.exe即可查看

在这里插入图片描述
现在我的depend.exe运行不了,卡死了
gg

反正了解一下即可

cpu内部结构与寄存器(了解一波)

我在计算机组成原理里面已经说过了
这里简单了解,拓展一下

在这里插入图片描述
寄存器在cpu内部,容量小,但是速度很快
位往往是cpu一次性处理位数的大小
在这里插入图片描述
运算的数的位数
在这里插入图片描述
内存中的数据是磁盘缓存中来
磁盘缓存从磁盘中来,硬盘

靠近cpu速度
c语言底层对内存时有封装的
我们不看寄存器
计算机发展是向着人类习惯来的,所以底层适应计算机的那些东东比较复杂,我们不咋看【汇编语言】

后来的python,c++,java,go都是底层用c封装的
反正我们后面的代码简单,但是最核心的还是c和c++

visual studio支持你写汇编语言
而且高级的工程师都会汇编语言,这样你能更好地调试代码,知道如何调试代码

#include<stdio.h>
#include<Windows.h>

int main(void)
{
	int a;
	int b;
	int c;//定义变量

	__asm
	{//高级c语言的工程师都会汇编语言的
		mov a, 3
		mov b, 4
		mov eax, a
		add eax, b//加法结果自动放入eax
		mov c, eax//将eax和放入c变量
	}

	printf("%d\n", c);
	return 0;
}

在这里插入图片描述
看来c语言中,有自动的内存使用区,需要计算时
将变量这些东西放入寄存器中

懂?

如果直接用c呢

#include<stdio.h>

int main(void) 
{
	int a = 3;
	int b = 5;
	int c = a + b;
	printf("%d\n", c);//直接打印,c底层会搞成汇编语言,但是我们不管了
	//%d是格式匹配符,匹配整型数据。放双引号中,c就匹配c

}

在这里插入图片描述
看见了没,超级简单的代码
比汇编容易多了

美滋滋

%d是格式匹配符

`#include<stdio.h>

int main(void)
{
int a = 3;
int b = 5;
int c = a + b;
printf(“%d\n”, c);//直接打印,c底层会搞成汇编语言,但是我们不管了
//%d是格式匹配符,匹配整型数据。放双引号中,c就匹配c
printf(“%d + %d = %d\n”, a, b, c);
}`在这里插入图片描述
这个c语言,当年学习的时候老费劲
其实很简单

现在用过了java,python,c++和汇编语言之后
终于明白,c原来真的挺溜的

编译程序常见的错误

你鼠标放到错误的地方,它会提示你,红色波浪线
在这里插入图片描述
在这里插入图片描述
visual studio的功能很强大的,它会提示你

反正逻辑错误不好查
其他的错误好说

实在不行,就断点调剂即可。
美滋滋
%x的代码好像也没问题
打个断点,程序会停止在这句代码,不执行
你按逐行执行,它就会执行这行代码

在这里插入图片描述
程序不是写出来的
而是调出来的

调试代码的过程远比写代码重要。

工具–选项里面找文本编辑器,c/c++,然后勾选行号,选中
然后就可以设置断点了

逐语句执行下一条指令
美滋滋

可以按调试,窗口,监视器,你看看那些变量会啥样
在这里插入图片描述
逐行运行
你看看c
在这里插入图片描述
变了,看见了么
美滋滋

要先启动调试,你才能添加窗口哦

一般f11是逐行执行,遇到函数,会进入这个函数去一步步执行
f10是执行本行,不会进去,直接执行,然后跳过本行

这种我们在其他的编程语言中依然也是这么玩的
python,java啥的,都这样

在这里插入图片描述

c语言代码还能反汇编??

调试-窗口-反汇编
美滋滋
在这里插入图片描述
就出来了反汇编的代码
c语言和汇编程序指令是一一对应的

好说,反正我们会汇编语言,你也能理解这玩意
不会汇编也无所谓

集成环境IDE,integrated development environment

在这里插入图片描述

Qt
在这里插入图片描述

visual studio
pycharm
idea

vs常用的快捷键

在这里插入图片描述
自动格式化代码
如果缩进出问题
咱们只需要一个快捷键,就搞定
ctrl+k同时还要追加ctrl+f

#include<stdio.h>

int main(void)
{
	int a = 3;
	int b = 5;
	int c = a + b;
	printf("%d\n", c);//直接打印,c底层会搞成汇编语言,但是我们不管了
	//%d是格式匹配符,匹配整型数据。放双引号中,c就匹配c
	printf("%d + %d = %x\n", a, b, c);
}

排版缩进,和各种空格,都给你排版好了
非常非常nice的

整块注释
ctrl+k,追加ctrl+c

#include<stdio.h>

int main(void)
{
	int a = 3;
	int b = 5;
	int c = a + b;
	//printf("%d\n", c);//直接打印,c底层会搞成汇编语言,但是我们不管了
	%d是格式匹配符,匹配整型数据。放双引号中,c就匹配c
	//printf("%d + %d = %x\n", a, b, c);
}

懂了吧

ctrl+k补加,ctrl+u取消注释

#include<stdio.h>

int main(void)
{
	int a = 3;
	int b = 5;
	int c = a + b;
	printf("%d\n", c);//直接打印,c底层会搞成汇编语言,但是我们不管了
	//%d是格式匹配符,匹配整型数据。放双引号中,c就匹配c
	printf("%d + %d = %x\n", a, b, c);
}

f9设置断点
f5调试
ctrl+f5时运行
f10逐过程不进函数
f11逐行进函数

总结

复习课堂笔记,看看自己写的博客即可
很简单的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
前面这几个博客,就是我复习的这些内容,这个课讲得很好的。


总结

提示:重要经验:

1)
2)学好c++,即使经济寒冬,手握10个大厂offer绝对不是问题!
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
很抱歉,我之前的回答有误。在VSCode中,没有名为"C/C++: Edit Configurations"的具体插件或设置。请忽略我之前的错误信息。 对于C/C++开发环境的配置,你可以按照以下步骤进行: 1. 确保已安装C/C++插件:在VSCode中,点击左侧导航栏中的扩展按钮(或按下`Ctrl+Shift+X`快捷键)打开扩展面板。在搜索框中输入"C/C++",找到并安装"Microsoft C/C++"插件。 2. 配置编译器和头文件路径:在VSCode中,点击左侧导航栏中的文件夹图标打开文件资源管理器。打开你的C/C++项目文件夹,并在该文件夹中创建一个名为`.vscode`的文件夹(如果还没有)。在`.vscode`文件夹中创建一个名为`c_cpp_properties.json`的文件,并在其中添加以下内容: ```json { "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**" ], "defines": [], "compilerPath": "YOUR_COMPILER_PATH", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64" } ], "version": 4 } ``` 确保将`YOUR_COMPILER_PATH`替换为你实际使用的编译器路径。 3. 配置任务(可选):在VSCode中,按下`Ctrl+Shift+P`快捷键,打开命令面板。输入"Tasks: Configure Default Build Task"并选择该选项。然后选择你使用的编译器,例如"g++"或"clang++"。这将在项目根目录下创建一个名为`tasks.json`的文件,并在其中定义默认的构建任务。 以上步骤可以帮助你配置C/C++开发环境并使用VSCode进行编码和调试。祝你编程愉快!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰露可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值