添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
C语言核心技术-Visual Studio 2019常用技巧

C语言核心技术-Visual Studio 2019常用技巧

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 = %d\n",source);
printf("target = %d\n", 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下断点或者取消断点

下断点

然后使用F5调试运行程序,程序会在之前下过断点的地方暂停(无论是逐语句还是逐过程),此时可以在Visual Studio提供的自动窗口中观察变量的值


如果想要一行一行调试代码,可以使用快捷键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=" schemas.microsoft.com/V ">
<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 菜单 工具->代码片段管理器



代码片段管理器

选择代码片段管理器的语言为C++,然后选中My Code Snippets



然后为导入的代码片段选择一个位置


导入成功


导入成功之后新建任意的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;
}

发布于 2019-12-15 16:39

文章被以下专栏收录