​C语言编译器(C语言编程软件)完全攻略(第七部分:VS2017使用教程(使用VS2017编写C语言程序))

news/2024/7/2 23:44:29

介绍常用C语言编译器的安装、配置和使用。

七、VS2017使用教程(使用VS2017编写C语言程序)

本节,我们学习如何在新版 VS 2017 中编写程序输出“C语言中文网”,程序代码如下:

#include <stdio.h>

int main()

{

        puts("C语言中文网");

        return 0;

}

1、创建项目(Project)

在 VS 2017 下开发程序首先要创建项目,不同类型的程序对应不同类型的项目,初学者应该从控制台程序学起。

打开 VS 2017,在菜单栏中依次选择 “文件 --> 新建 --> 项目”

或者直接按下 Ctrl+Shift+N 组合键,都会弹出下面的对话框:

选择 “空项目”,填写好项目名称,选择好存储路径,同时对于初学者来说,可取消勾选 “为解决方案创建目录”,点击 “确定” 按钮即可。

注意:这里一定要选择 “空项目” 而不是 “Windows控制台应用程序”,因为后者会导致项目中自带有很多莫名其妙的文件,不利于初学者对项目的理解。另外,项目名称和存储路径中最好不要包含中文。

点击 “确定” 按钮后,会直接进入项目可操作界面,我们将在这个界面完成所有的编程工作。

有兴趣的同学可以打开项目的存储路径(本文的项目存储路径为 D:\Demo\),会发现多了一个 Demo 文件夹,这就是存储整个项目的文件夹。

2、添加源文件

在 “源文件” 处右击鼠标,在弹出菜单中选择 “添加 --> 新建项” ,如下图所示:

或者直接按下 Ctrl + shift + A 组合键,都会弹出添加源文件的对话框,如下图所示:

在此分类中,我们选择 “C++文件(.cpp)”,编写 C 语言程序时,注意源文件后缀名为 .c ,点击 “添加” 按钮,就添加上了一个新的源文件。

注意:C++ 是在 C 语言的基础上进行的扩展,所有在本质上,C++ 已经包含了 C 语言的所有内容,所以大部分 IDE 会默认创建后缀名为 .cpp 的C++ 源文件。为了大家养成良好的规范,写 C 语言代码,就创建后缀名为 .c 的源文件。

3、编写代码并生成程序

打开 hello.c ,将本节开头的代码输入到该源文件中,如下图所示:

注意:虽然可以将整段代码复制到编辑器,但是我还是强烈建议你手动输入,我敢保证你第一次输入代码会有各种各样的错误,只有把这些错误都纠正了,你才会进步。

4、编译(Complie)

在上方菜单栏中选择 “生成 --> 编译”,就完成了 hello.c 源文件的编译工作,如下图所示:

或者直接按下 Ctrl + F7 组合键,也能够完成编译工作,这样更加便捷。

如果代码没有任何错误,会在下方的 “输出窗口” 中看到编译成功的提示:

编译完成后,打开项目目录下(本教程中是 D:\Demo\ )的 Debug 文件夹,会看到一个名为 hello.obj 的文件,此文件就是经过编译产生的中间文件,这种中间文件的专业称呼是目标文件(Object File),在 VS 和 VC 下,目标文件的后缀都是 .obj 

5、链接(Link)

在菜单栏中选择 “项目 --> 仅用于项目 --> 仅连接 Demo” , 就完成了 hello.obj 链接工作,如下图所示:

如果代码没有错误,会在下方的 “输入窗口” 中看到链接成功的提示:

本项目中只有一个目标文件,链接的作用是将 hello.obj 和系统组件(专业讲是静态链接库)结合起来,形成可执行文件。如果有多个目标文件,这些文件之间还要相互结合。

当你再次打开项目目录下(本教程中是 D:\Demo\ )的 Debug 文件夹,会看到一个名为 Demo.exe 的文件,这就是最终生成的可执行文件,就是我们想要的结果。

双击 Demo.exe 运行,并没有输出“C语言中文网”几个字,而是会看到一个黑色窗口一闪而过。这是因为,程序输出“C语言中文网”后就运行结束了,窗口会自动关闭,时间非常短暂,所以看不到输出结果,只能看到一个“黑影”。

对上面的代码稍作修改,让程序输出 “C语言中文网” 后暂停下来:

#include <stdio.h>

#include <stdlib.h>

int main()

{

        puts("C语言中文网");

        system("pause");

        return 0;

}

system("pause"); 的作用就是让程序暂停一下。注意代码开头部分还添加了 #include <stdlib.h> 语句,否则 system("pause"); 无效。

再次编译并链接,运行生成的 Demo.exe,终于如愿以偿,看到输出结果了,如下图所示:

按下键盘上的任意一个键,程序就会关闭。

6、更加快捷的办法

我们把上面的步骤总结一下,可以发现一个完整的编程过程是:

  1. 编写源文件:这是编程的主要工作,我们要保证代码的语法 100% 正确,不能有任何差错;
  2. 编译:将源文件转换为目标文件;
  3. 链接:将目标文件和系统库组合在一起,转换为可执行文件;
  4. 运行:可以检验代码的正确性。

不过 VS 提供了一种更加快捷的方式,可以一键完成编译、链接、运行三个动作,点击菜单栏中的 “本地 Windows 调试器” 按钮,或者按下 F5 键也能做到这一点。

7、总结

现在,你就可以将 Demo.exe 分享给你的朋友了,告诉他们这是你编写的第一个 C 语言程序。虽然这个程序非常简单,但是你已经越过了第一道障碍,学会了如何编写代码,如何将代码生成可执行程序,这是一个完整的体验。

在本教程的基础部分,教大家编写的程序都是这样的“黑窗口”,与我们平时使用的软件不同,它们没有漂亮的界面,没有复杂的功能,只能看到一些文字,这就是控制台程序(Console Application),它与 DOS 非常相似,早期的计算机程序都是这样的。

控制台程序虽然看起来枯燥无趣,但是它非常简单,适合入门,能够让大家学会编程的基本知识;只有夯实基本功,才能开发出健壮的GUI(Graphical User Interface,图形用户界面)程序,也就是带界面的程序。


http://lihuaxi.xjx100.cn/news/1939814.html

相关文章

C ++类

定义一个Person类&#xff0c;私有成员int age&#xff0c;string &name&#xff0c;定义一个Stu类&#xff0c;包含私有成员double *score&#xff0c;写出两个类的构造函数、析构函数、拷贝构造和拷贝赋值函数&#xff0c;完成对Person的运算符重载(算术运算符、条件运算…

[数据结构]链栈的创建,入栈和出栈

栈是一种在栈顶压入和弹出的数据结构&#xff0c;所以只在一端进行操作.为了减小遍历开支&#xff0c;所以链栈一般在首元节点处进行插入&#xff08;入栈&#xff09;. #include <stdio.h> #include <stdlib.h>typedef struct Node {int data;struct Node* next;…

文件摆渡系统如何实现网络隔离后的数据交换、业务流转?

近年来全球网络安全威胁态势的加速严峻&#xff0c;使得企业对于网络安全有了前所未有的关注高度。即便没有行业性的强制要求&#xff0c;但在严峻的安全态势之下&#xff0c;企业的网络安全体系建设正从“以合规为导向”转变到“以风险为导向”&#xff0c;从原来的“保护安全…

MIT_线性代数笔记:第 24 讲 马尔可夫矩阵;傅里叶级数

目录 马尔可夫矩阵 Markov matrices傅里叶级数 Fourier series 本讲学习马尔可夫矩阵和傅里叶级数&#xff0c;两者是关于特征值和投影矩阵的应用。 马尔可夫矩阵 Markov matrices A [ 0.1 0.01 0.3 0.2 0.99 0.3 0.7 0 0.4 ] A \begin{bmatrix} 0.1 & 0.01 & 0.3 \\…

我们公司内应届生身上的6个共性问题

如题目&#xff0c;本文主要是根据我们公司内真实的应届生身上共同的问题&#xff0c;总结而来。 1. 一天会做很多工作&#xff1a;会跟很多人对接&#xff0c;会一会忙这个一会忙哪个 现象&#xff1a; 说实话&#xff0c;这种情况&#xff0c;我看着都替她着急。自己正在解…

c++关联容器详细介绍

文章目录 关联容器的简介1. std::set2. std::multiset3. std::map4. std::multimap5. std::unordered_set 和 std::unordered_map 关联容器的迭代器1. 迭代器基础2. 使用迭代器遍历关联容器3. 结合使用标准算法库 关联容器高级特性1. 自定义比较函数2. 容器的内存管理3. 性能分…

C++基础语法——数组、函数、指针和结构体

本专栏记录C学习过程包括C基础以及数据结构和算法&#xff0c;其中第一部分计划时间一个月&#xff0c;主要跟着黑马视频教程&#xff0c;学习路线如下&#xff0c;不定时更新&#xff0c;欢迎关注。 当前章节处于&#xff1a; >第1阶段-C基础入门 ---------第2阶段实战-通讯…

亚信安慧AntDB数据库:企业核心业务系统数据库升级改造的可靠之选

在近期召开的“2023年国有企业应用场景发布会”上&#xff0c;亚信安慧公司的核心数据库产品AntDB闪耀登场&#xff0c;技术总监北陌先生针对企业核心业务系统数据库升级改造的关键议题发表了深度分享。他从研发、工程实施和运维管理三个维度细致剖析了当前企业在进行数据库升级…