C语言入门基本概念与开发环境

一、铁打的C语言

C语言的意义:

  • 源码级别的可移植
  • 当前所有的主流操作系统(Unix、Mac OS、Linux、安卓、Windows)统统主要都是使用C语言编写的
  • 其他的主流语言,几乎都是C语言编写的

二、开发环境与控制台

集成开发工具(IDE)有很多种,流行的

  • VS:微软,号称“宇宙第一IDE”
  • CodeBlocks:开源IDE,语法高亮、调试等支持,Linux/Windows下都有对应的版本
  • CLion:很好用
  • XCode:苹果操作系统上首选
  • dev­c:轻量级的IDE,开源。功能不是很强大

控制台

在之前的年代,很长一段时间,键盘是唯一的主要输入设备。那时,大家与计算机进行沟通,主要是通过键盘
控制台,就是一个可以通过键盘输入数据,并获取输出的东西。

可执行程序,是可以通过控制台启动的

我们电脑上的可执行程序(exe程序),只要在控制台输入它的路径,就可以启动。

控制台必要命令

  • 输入exe路径,就可以启动程序
  • 盘符切换
c:d:c:

(注意符号应该是英文符号)

  • 目录切换
cd<目标目录>

我们先在C盘下新建一个SuperC目录。然后再在控制台中切换到那个目录去。

  • 显示目录和文件
dir

清屏命令

cls

三、C语言程序从无到有

为了方便,我们使用VS所附带的控制台。他的好处在于已经配置好了编译环境。
如何启动:开始菜单/Visual Studio目录/Visual Studio Tools
在这里插入图片描述
这个控制台环境下,可以直接使用微软VS的编译器、链接器。

  1. 创造一个文本文档
    切换到c:\的SuperC目录,然后新建一个文本文档

点右键,选择“编辑”。输入以下代码内容:

#include <stdio.h>
int main(int argc, char*argv[])
{
	printf("hello, world!\r\n");
	return0;
}

然后,将“新建文本文档.txt”更名为"first.c"。
(如果看不到后缀,请设置显示后缀)。
到此为止,我们已经准备好了C语言源文件。

在控制台中进行编译和链接。
切换到我们first.c的目录

cd c:\SuperC
c:

编译:

cl/cfirst.c

运行以上命令后,产生了一个first.obj文件。
链接:

linkfirst.obj

运行以上命令后,得到first.exe文件。
运行first.exe

first.exe

编译和链接的作用

  • cl.exe编译器:输入是一个c语言源文件,输出一个obj文件,obj文件中存放的是【机器码】
  • link.exe链接器:输入是一个或者多个obj文件,输出是一个exe文件

一个C语言程序的基本组成

#include <stdio.h>
int main(int argc, char*argv[])
{
	printf("hello, world!\r\n");
	return0;
}
  • #include预处理指令:包含头文件。include被本质,其实就是找到对应的文件,然后将那个文件中的所有内容,复制粘贴到本文件中。
  • main函数:整个C语言程序的入口
  • printf:函数调用

四、VS的基本使用

什么是IDE
从我们刚刚手工编译、链接的过程。我们使用了哪些工具?

  • 文本编辑器(记事本)
  • 编译器(cl)
  • 链接器(link)
  • 运行了程序本身(first.exe)

有人,就将编辑器、编译器、链接器、调试器、版本控制工具的等,集结在一起,供程序员使用。
这种软件,一般称为IDE(集成开发环境)。VS是其中一款IDE。我们上课采用它。

创建工程和设置工程

点击“文件”、新建、项目
在这里插入图片描述
选择确定后,得到

在这里插入图片描述
选择完成

在这里插入图片描述
默认的VS代码并不标准,这是因为微软从兼容性、安全、移植等方面做了额外的工作。
但是我们可以通过设置,变为标准。

  • 改main char
  • 去掉预编译头设置
  • 加入一个安全预处理器
  • 去掉随机基地址

工程上点右键,选择属性,去掉预编译头设置
在这里插入图片描述
为了可以使用scanf等标准函数,我们要在预处理器中,加入

_CRT_SECURE_NO_WARNINGS

在这里插入图片描述

为了未来授课过程中降低大学学习难度,我们还需要去掉随机基地址。
在这里插入图片描述
设置快捷键方案
VS的前身是VC。但是VS默认的快捷键方案和VC的快捷键方案是不一致的。

在这里插入图片描述

五、如何使用VS生成和启动程序

生成程序
在生成菜单中,选择“生成解决方案”,即可生成程序(exe)。快捷键F7

如何运行程序
快捷键Ctrl + F5就可以运行程序。

VS的报错处理
在这里插入图片描述
如果语法上有错误,生成解决方案的过程,会将报错信息输出到输出窗口。双击某个错误,会自动跳转到对应的错误附近。

六、编码规范与调试技巧

调试概念及入门

什么是调试
简单而言,调试(debug)使得我们可以将运行的程序“暂停”起来,慢慢分析程序执行过程的细节。
VS中如何启动调试
F10就可以启动调试。
在这里插入图片描述
启动成功后,会出现一个黄色箭头,它代表即将运行的代码。
并且,我们编写的exe程序,会被以调试的方式启动。
在这里插入图片描述
调试窗口设置问题

在调试状态下,设置三个窗口。请在调试状态,选择“调试菜单”下的“窗口”菜单。

  • 内存窗口:可以查看内存中的内容
  • 监视窗口:可以查看表达式或者变量的值
  • 调用堆栈窗口:体现了函数的调用关系(暂时不需要掌握)

在这里插入图片描述
内存地址相当于门牌号码,而C语言程序中的所有变量,在内存中都会有一个地址,我们根据他们的地址,可以查看他们在内存中的值(会以16进制的方式显示)。

使用监视窗口,可以动态地监控C语言程序中变量或者表达式的值,甚至可以进行修改。

推荐布局:
在这里插入图片描述

调试的基本技术

单步

F10是单步(逐过程),每按一次F10,黄色箭头就会执行一个语句。
F11是逐语句的单步。
F10和F11几乎是没有区别的,它们唯一出现区别的情况,是遇见函数调用。当遇见函数调用时:

  • F10:会把整个函数当作一个整体,一口气运行完
  • F11:跳转到那个函数的内部去

断点
如何设置、取消断点?
答:快捷键F9,可以用于切换断点。
在这里插入图片描述
断点的作用,其实相当于“拦路打劫”,当程序的执行流遇见断点后,就会被拦截下来,暂停住。
我们通常可以通过设置断点,在我们感兴趣的代码处进行单步。

继续执行。
继续执行的快捷键是F5,它就是让程序继续执行,除非遇到断点。

编码规范

什么是编码规范,为什么要有编码规范?

编码规范不是语法级别的要求,而是人沟通级别的要求。
编码规范的最终目的,是方便人与人之间的交流。
我们先看一段没有遵循良好编码规范的代码:

#include <stdio.h>
intmain(intargc, char*argv[])
{
	int i;
	printf("Input an number\r\n");
	scanf("%d", &i);
	if (i%2==0)
	{
		printf("Even number\r\n");
	}else
		printf("odd number");
	return0;
}

它的语法上是没有任何问题的,可以正确的判别数字的奇偶。但是代码可读性就很差。
编码规范,是方便人和人沟通,或者是自己和自己以前写的代码沟通。

常见要点:

  • 代码缩进、花括号风格统一
  • 利用空格、换行,来体现逻辑的亲疏程度
  • 对于变量名、函数名等,遵循一定的命名规范(比如匈牙利命名法)

匈牙利命名法

匈牙利命名法有几个基本要求:

  • 推荐使用英文全拼作为变量名,尽可能的体现出变量、函数的用用处
  • 英文单词的首字母大写,有多个英文单词,大写字母起到了分割作用
  • 对于变量,使用特定的前缀,来表示变量类型

比如:

iNumber

int类型的变量,变量名称暗示着,这是个数字。
常见的前缀总结:

int ‐i, n
float ‐f, flt
double ‐d, db
char ‐c, ch
short ‐s
unsinged ‐u

比如:

double dTeacherSalary=10000.0;
int iStudentID=5;

而对于函数而言,名称的要求与变量类似,但是不需要前缀。

double GetTeacherSalary();
void SetTeacherSalary();

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/jaynm/article/details/106007917