![ef678f8360e72003d1d29898554c0fb8.png](https://i-blog.csdnimg.cn/blog_migrate/f635dc4f4c040f89716aa233b3686fa6.jpeg)
Visual Studio 2019常用快捷键
在日常使用Visual Studio 开发中会使用到如下常用的快捷键
快捷键名称 功能
Ctrl+k,f 自动格式化代码
Ctrl+k,c 注释代码
Ctrl+k,u 取消注释代码
Ctrl+F5 不调试运行
Ctrl+shift+b 编译,不运行
F12 查看函数定义
ctrl+- 退出函数定义
F5 调试运行
F11 逐语句(遇到函数跳到函数内部逐语句执行)
F10 逐过程 (不会进入函数内部,但是函数会被调用)
Shift+F11 跳出
Visual Studio 2019 调试程序
在后期编写程序时,经验不足的开发人员通常会遇到两种错误:编译错误和运行时错误,编译错误通常是编写的程序不满足编译器的语法规范,而运行时错误则是程序运行时发生的错误,想要排查程序运行时的错误,就需要使用IDE提供的调试功能。
在源文件debug.c中定义一个返回两个整数相乘的方法mul,然后在main函数中定义两个变量作为参数传入mul方法中,并调用两个整数相乘的方法,输出计算结果
#include <stdlib.h>
/*
定义两个整数相乘并返回
*/
int mul(int source, int target) {
//打印输出传入mul方法的两个整数参数的值
printf("source = %dn",source);
printf("target = %dn", target);
return source * target;
}
/*
Visual Studio 2019的调试
@QQqun 936638595
@QQ 773555568
@version 2019/12/15
*/
int main(int argc, char* argv[])
{
//定义两个变量
int source = 12;
int target = 12;
//调用两个整数相乘的方法,并将计算的结果保存到整数变量result中
int result = mul(source, target);
printf("result = %d n",result);
system("pause");
return 0;
}
在调试程序前首先需要下断点,可以使用快捷键F9下断点或者取消断点
![aa1d32740edf1b0a30905b0a233ce373.png](https://i-blog.csdnimg.cn/blog_migrate/88d1ffe2e744d411e644bb1ccf800e8e.jpeg)
下断点
然后使用F5调试运行程序,程序会在之前下过断点的地方暂停(无论是逐语句还是逐过程),此时可以在Visual Studio提供的自动窗口中观察变量的值
![6d86dbaa309ac8efc4a5f4e5e1773630.png](https://i-blog.csdnimg.cn/blog_migrate/80df66e9d0e58f423c1fae44061dcfc6.jpeg)
如果想要一行一行调试代码,可以使用快捷键F11,当遇到函数时(例如这里的mul函数),会进入函数的内部一行一行执行,直到该函数结束为止。
如果调试时不想进入函数的内部,可以使用快捷键F10,当程序中调用了其他函数时不会进入其他函数内部,但是函数会被调用。
如果调试时想要从一个断点跳到另外一个断点,可以使用shift+F11实现。
Visual Studio 2019的C4996错误
C4996是Visual Studio 2019提供的错误编号
首先明确下C4996错误出现错误的原因:
Visual Studio 希望用户使用Visual Studio提供的非标准库函数,但是程序员希望使用标准库函数,因为标准库是可以移植的。
如果在Visual Studio中使用标准的库函数,就会引发C4996错误类似于这种提示:error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.这里的strcpy是标准的库函数,而在Visual Studio中使用这个函数引发了C4996错误。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
解决visual studio 2019 的C4996错误
@QQqun 936638595
@QQ 773555568
@version
*/
int main(int argc, char* argv[])
{
//定义一个字符串
char str[32] = "";
//将hi string 复制到str中
strcpy(str, "hi string");
printf("str = %s n",str);
system("pause");
return 0;
}
那么如何解决问题呢?
方案1:在源文件的第一行定义宏#define _CRT_SECURE_NO_WARNINGS
方案2:在源文件的第一行定义#pragma warning(disable:4996)
解决Visual Studio 2019的C4996错误的两种方式
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
解决visual studio 2019 的C4996错误
error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
@QQqun 936638595
@QQ 773555568
@version
*/
int main(int argc, char* argv[])
{
//定义一个字符串
char str[32] = "";
//将hi string 复制到str中
strcpy(str, "hi string");
printf("str = %s n",str);
system("pause");
return 0;
}
Visual Studio 2019的代码片段
Visual Studio 2019提供了代码片段的功能,其作用就是配置代码片段后,可以通过输入指定的快捷键生成模板代码,这样可以大大提高开发效率。
在后期编写C程序中,需要反复使用到如下的代码片段
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
/*
@QQqun 936638595
@QQ 773555568
@version
*/
int main(int argc, char* argv[]) {
return 0;
}
首先自定义代码片段文件MyCCode.snippet
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>MyCCodeTemplate</Title>
<Shortcut>mcct</Shortcut>
<Description>c的标准模板代码</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Code Language="cpp">
<![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
/*
@QQqun 936638595
@QQ 773555568
@version
*/
int main(int argc, char *argv[])
{
system("pause");
return 0;
}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
然后选择Visual Studio 2019 菜单 工具->代码片段管理器
![21b618c8a02afa6841f9e5f5c17d62b7.png](https://i-blog.csdnimg.cn/blog_migrate/0b5ca60f5ff2c95a3278a37b740e69a8.jpeg)
代码片段管理器
选择代码片段管理器的语言为C++,然后选中My Code Snippets
![3aa41c101b3517e8c88f234b2422e163.png](https://i-blog.csdnimg.cn/blog_migrate/34709a1bd2b4ffb8380da02853fdab45.jpeg)
然后为导入的代码片段选择一个位置
![9303a1c3949b0bb72487c57449def8e5.png](https://i-blog.csdnimg.cn/blog_migrate/efb4048eb06f20c31dc9f14677556b7c.png)
导入成功
![ac1a2920fd105cb2bd119a1181f74047.png](https://i-blog.csdnimg.cn/blog_migrate/ee39599ebad34238c9fd65f2c166c0f5.png)
导入成功之后新建任意的C程序源文件,在源文件中输入快捷键mcct就可以生成如下的代码片段
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
/*
@QQqun 936638595
@QQ 773555568
@version
*/
int main(int argc, char* argv[])
{
system("pause");
return 0;
}