当前位置 : 主页 > 编程语言 > c语言 >

C语言学习笔记

来源:互联网 收集:自由互联 发布时间:2023-09-07
1、Visual Studio2019用法 首次使用VisualStudio2019编写C语言代码程序运行非常快,导致控制台窗口一闪而逝,设置这里: ①选中程序右键选择属性 ②选择如下:链接器--系统--子系统:控制台

1、Visual Studio2019用法

  • 首次使用VisualStudio2019编写C语言代码程序运行非常快,导致控制台窗口一闪而逝,设置这里:
  • ①选中程序右键选择属性
  • ②选择如下:链接器-->系统-->子系统:控制台

C语言学习笔记_Visual

  • 快捷键Fn+F10会出现如下箭头:
  • 说明main函数是程序的入口
  • Fn+F10按一次程序向下执行一行

C语言学习笔记_右键_02

2、#define _CRT_SECURE_NO_WARNINGS 1的作用

当我们的程序不加这一行代码时:

//#define _CRT_SECURE_NO_WARNINGS 1 //让警告失效
int main()
{
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("请输入两个数字:>");
	scanf("%d%d", &num1, &num2);
  //scanf
  //strcpy
  //strlen
  //strcat
  //标准库函数是不安全的
  
	sum = num1 + num2;
	printf("num1+ num2 = %d\n", sum);
	return 0;
}

产生如下警告:

D:\dev\c\84\test_4_17\test.c(46,2): error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

翻译为: 

错误代号:C4996:'scanf':这个函数或变量可能不安全。考虑使用scanf_s替换。让描述失效,使用 _CRT_SECURE_NO_WARNINGS

原因是: 

scanf函数是C语言提供的,scanf_s函数不是标准C语言提供的,是VS编译器提供的。不推荐使用scanf_s函数代替scanf函数。若使用scanf_s函数,那代码只有VS编译器才能识别出来。(没了跨平台、可移植性)

注意: 

#define _CRT_SECURE_NO_WARNINGS 1 需要放在源代码的第一行

如何在每次新建源文件时自动添加这一行代码?

在newc++ file.cpp中添加 #define _CRT_SECURE_NO_WARNINGS 1 即可。

C语言学习笔记_程序运行_03

3、scanf返回值被忽略的问题

C语言学习笔记_程序运行_04

问题原因:

在ANSI C中只有scanf(),没有scanf_s(),但是scanf()在读取时不检查边界,所以可能会造成内存泄漏。于是Microsoft公司在VS编译器中提供了scanf_s(),如果想继续使用scanf这个不安全的函数,可以通过以下方法解决。

方法①:

把scanf改成:scanf_s

这是VS编译器特有,既然觉得scanf()不安全,那它就自己定义了一个scanf_s()。

C语言学习笔记_程序运行_05

方法②:

编译器错误提示的原因是因为VS中的SDL检查,只需要找到它并关闭就可以了。

关闭步骤:右键“项目文件” —— “属性” —— “配置属性” ——“C/C++”——“常规”——“SDL检查”改为“否”即可,如图所示

C语言学习笔记_右键_06

改为否后,再次编译就没问题了。

C语言学习笔记_程序运行_07

方法③:

在C语言程序开头添加代码:#pragma warning(disable:4996) //全部关掉

(或者)

在C语言程序开头添加代码:#pragma warning(once:4996)  //仅显示一个

C语言学习笔记_Visual_08

方法④:

在C语言程序开头添加代码:#define _CRT_SECURE_NO_WARNINGS 1

//忽略安全检测

每次都要加这么一串代码的话是不是感觉有点费力?

其实不用那么麻烦,我们只需要在VS中加入 _CRT_SECURE_NO_WARNINGS 这个宏就可以了,具体操作如下图所示:

C语言学习笔记_程序运行_09

4、在github克隆仓库到本地报错

C语言学习笔记_右键_10

Git报错: Failed to connect to github.com port 443 解决方案

两种情况:

第一种情况自己有vpn,网页可以打开github。说明命令行在拉取/推送代码时并没有使用vpn进行代理

第二种情况没有vpn,这时可以去某些网站上找一些代理ip+port

解决办法:配置http代理Windows、Linux、Mac OS 中 git 命令相同:

配置socks5代理

git config --global http.proxy socks5 127.0.0.1:7890
git config --global https.proxy socks5 127.0.0.1:7890

配置http代理

git config --global http.proxy 127.0.0.1:7890
git config --global https.proxy 127.0.0.1:7890

注意:

命令中的主机号(127.0.0.1)是使用的代理的主机号(自己电脑有vpn那么本机可看做访问github的代理主机),即填入127.0.0.1即可,否则填入代理主机 ip(就是网上找的那个ip)

命令中的端口号(7890)为代理软件(代理软件不显示端口的话,就去Windows中的代理服务器设置中查看)或代理主机的监听IP,可以从代理服务器配置中获得,否则填入网上找的那个端口port  

socks5和http两种协议由使用的代理软件决定,不同软件对这两种协议的支持有差异,如果不确定可以都尝试一下
主机号和端口号可在代理的位置查看(自己有vpn的需要查看)


C语言学习笔记_Visual_11

查看代理命令

git config --global --get http.proxy
git config --global --get https.proxy

取消代理命令

有时上传文件至github中也会出现以下命令:

Failed to connect to github.com port 443。

这时就需要我们取消代理命令

git config --global --unset http.proxy
git config --global --unset https.proxy








上一篇:[Leetcode]合并两个有序链表
下一篇:没有了
网友评论