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

news2024/11/18 20:35:58

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

五、VS2015使用教程(使用VS2015编写C语言程序)

前面我们给出了一段完整的C语言代码,就是在显示器上输出“C语言中文网”,如下所示:

#include <stdio.h>

int main()

{

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

        return 0;

}

本节我们就来看看如何通过 VS2015 来运行这段代码。

1、创建项目(Project)

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

打开 VS2015,在上方菜单栏中选择“文件 --> 新建 --> 项目”:

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

选择“Win32控制台应用程序”,填写好项目名称,选择好存储路径,点击“确定”按钮即可。

如果你安装的是英文版的 VS2015,那么对应的项目类型是“Win32 Console Application”。另外还要注意,项目名称和存储路径最好不要包含中文。

点击“确定”按钮后会弹出向导对话框:

点击“下一步”按钮,弹出新的对话框:

先取消“预编译头”和“安全开发生命周期检查”这两个选项,再勾选“空项目”,然后点击“完成”按钮就创建了一个新的项目。

感兴趣的读者可以打开 E 盘,会发现多了一个cDemo文件夹,这就是整个项目所在的文件夹。

2、添加源文件

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

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

在“代码”分类中选择C++文件(.cpp),填写文件名,点击“添加”按钮就添加了一个新的源文件。

小小的提示:C++是在C语言的基础上进行的扩展,C++已经包含了C语言的所有内容,所以大部分的 IDE 只有创建C++文件的选项,没有创建C语言文件的选项。但是这并不影响使用,我们在填写源文件名称时把后缀改为.c即可,编译器会根据源文件的后缀来判断代码的种类。上图中,我们将源文件命名为hello.c

3、编写代码并生成程序

打开 hello.c,将本节开头的代码输入到 hello.c 中,上图是输入完成以后的效果。

注意:虽然可以将整段代码复制到编辑器,但是我还是强烈建议你手动输入,我敢保证你第一次输入代码会有各种各样的错误,只有把这些错误都纠正了,你才会进步。本教程后续章节还会给出很多示例代码,这些代码一定要手动输入,不要复制后运行成功了就万事大吉。

(1)编译(Compile)

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

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

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

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

(2)链接(Link)

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

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

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

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

双击 cDemo.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");无效。

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

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

(3)更加快捷的办法

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

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

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

(4)还有更实用的技巧

如果我们的代码中没有添加system("pause");暂停语句,点击“运行”按钮,或者按下F5后程序依然会一闪而过,只能看到一个“黑影”。

如果想让程序自动暂停,可以按下Ctrl+F5组合键,这样程序就不会一闪而过了;换句话说,按下Ctrl+F5,VS 会自动在程序的最后添加暂停语句。

现在我们已经了解了从编写代码到生成程序的整个过程,在以后的学习中,可以直接使用Ctrl+F5组合键了,不用再分步骤完成了,这样会更加方便和实用。

4、总结

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1358938.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网页爬虫在数据分析中的作用,代理IP知识科普

在当今信息爆炸的时代&#xff0c;数据分析成为洞察信息和制定决策的不可或缺的工具。而网页爬虫&#xff0c;作为数据收集的得力助手&#xff0c;在数据分析中扮演着举足轻重的角色。今天&#xff0c;我们将一同探讨网页爬虫在数据分析中的作用。 1. 数据收集的先锋 网页爬虫…

【AWS系列】巧用 G5g 畅游Android流媒体游戏

序言 Amazon EC2 G5g 实例由 AWS Graviton2 处理器提供支持&#xff0c;并配备 NVIDIA T4G Tensor Core GPU&#xff0c;可为 Android 游戏流媒体等图形工作负载提供 Amazon EC2 中最佳的性价比。它们是第一个具有 GPU 加速功能的基于 Arm 的实例。 借助 G5g 实例&#xff0c;游…

OAI openair3代码结构整理

openair3代码框架结构 OAI&#xff08;OpenAirInterface&#xff09;是一个开源的5G网络软件平台&#xff0c;用于研究和开发5G网络技术。OpenAir3是OAI项目中的一个子项目&#xff0c;专注于5G核心网络的功能实现。 一、OpenAir3的代码主要包括以下几个部分&#xff1a; NAS…

如何使用loki查询日志中大于某一数字的值的日志

简介 loki是一款轻量级的日志收集中间件&#xff0c;比elk体系占用的内存更小&#xff0c;采用go语言开发&#xff0c;可以利用grafana来查询loki中存储的日志&#xff0c;loki存储日志只对提前预设的标签做索引&#xff0c;所以日志存储空间占用比elk小很多。 方法 loki只对…

Springboot整合RocketMQ 基本消息处理

目录 1. 同步消息 2. 异步消息 3. 单向消息 4. 延迟消息 5. 批量消息 6. 顺序消息 7. Tag过滤 导入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId></dependency> …

如何使用可视化管理工具DockerUI远程管理docker容器

文章目录 前言1. 安装部署DockerUI2. 安装cpolar内网穿透3. 配置DockerUI公网访问地址4. 公网远程访问DockerUI5. 固定DockerUI公网地址 前言 DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基…

准博士生教你如何阅读论文

AI方向如何阅读论文 绪论会议整理一篇论文的主要结构AbstractIntroductionRelated WorkApproach(framework名称亦可)ExperimentsImplementation detailsResultsAblation StudyDiscussion Conclusion 如何阅读多篇论文怎样读/写related work怎样读approach结语 绪论 作为一位工…

SSM在线手机品牌商城----计算机毕业设计

项目介绍 该项目为前后台项目&#xff0c;分为普通用户与管理员两种角色&#xff0c;前台普通用户登录&#xff0c;后台管理员登录&#xff1b; 管理员角色包含以下功能&#xff1a; 管理员登录,用户管理,品牌管理,子品牌管理,商品管理,订单管理,留言板管理等功能。 用户角…

华为交换机ETH-TRUNK链路聚合lacp模式与手工模式

SW1配置如下 vlan batch 10interface Eth-Trunk1port link-type trunkport trunk allow-pass vlan 10mode lacp-static #手工模式删除改行max active-linknumber 2 #手工模式删除改行trunkport GigabitEthernet 0/0/1 to 0/0/2#配置为主设备&#xff08;修改优先级&…

DevOps(8)

目录 36.当发出的命令与上次使用时产生的结果不同时&#xff0c;会出现什么问题&#xff1f; 37./usr /local的内容是什么&#xff1f; 38.你如何终止正在进行的流程&#xff1f; 39.如何在命令行提示符中插入注释&#xff1f; 40.什么是命令分组以及他是如何工作的&…

效果图渲染角度哪什么小技巧?

在创建效果图渲染时&#xff0c;正确设置相机角度对于表现设计的视觉效果至关重要。好的效果图通常能够增强设计图张力&#xff0c;通过效果图也能更好的看到真实物体的成果&#xff0c;以下是一些效果图渲染角度技巧&#xff0c;可以帮助你提高渲染的质量和表现力&#xff0c;…

odoo16 产品变体之体验

odoo16 产品变体之体验 最近接一个服装批发公司的业务,初步使用了一下产品变体功能,真的太棒了,记录一下使用的效果与注意事项,有此类需求或正在做此类功能的可以一块交流。 产品变体: 产品变体,做过服装类行业的程序员都知道,一个款式的衣服上市,通常会有好多种颜色…

C语言编译器(C语言编程软件)完全攻略(第四部分:VS2015下载地址和安装教程(图解))

介绍常用C语言编译器的安装、配置和使用。 四、VS2015下载地址和安装教程&#xff08;图解&#xff09; 为了更好地支持 Win10 程序的开发&#xff0c;微软发布了 VS2015。VS2015 支持开发人员编写跨平台的应用程序&#xff0c;从 Windows 到 Mac、Linux、甚至是编写 iOS 和 …

这些流行的K8S工具,你都用上了吗

关注【云原生百宝箱】公众号&#xff0c;获取更多云原生消息 本文介绍了一些流行的 Kubernetes 工具和常见的集群组件。例如 Helm 作为 Kubernetes 应用的包管理器&#xff0c;以及本地开发所需的 Kubernetes 发行版。另外提及了一些常见的集群组件&#xff0c;如集群自动缩放器…

产品需求分析——目标用户分析

目标用户官方解读&#xff1a;是指企业决定以相应产品去满足其需求&#xff0c;并为其服务的用户群体。 通俗来说&#xff0c;就是你的产品得设定个目标人群&#xff0c;在你设定目标人群的属性范围内设计产品的功能&#xff0c;产品设计一定要从客观的角度出发&#xff0c;可以…

如何访问GitHub快的飞起?两步解决访问超时GitHub,无法访问GitHub的问题

1.查找国内访问比较快的IP 站长工具网址&#xff1a; https://tool.chinaz.com 测速链接: https://tool.chinaz.com/speedtest/github.com 输入 github.com 点击查看分析 往下滑动&#xff0c;找一个比较快的IP&#xff0c;然后去修改hosts配置文件 &#xff08;例如&#xff…

【React系列】Portals、Fragment

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) Portals 某些情况下&#xff0c;我们希望渲染的内容独立于父组件&#xff0c;甚至是独立于当前挂载到的DOM元素中&am…

2023年广东省网络安全A模块(笔记详解)

模块A 基础设施设置与安全加固 一、项目和任务描述&#xff1a; 假定你是某企业的网络安全工程师&#xff0c;对于企业的服务器系统&#xff0c;根据任务要求确保各服务正常运行&#xff0c;并通过综合运用登录和密码策略、流量完整性保护策略、事件监控策略、防火墙策略等多…

1.5C语言 双曲正弦函数(*) 优化麦克劳林公式

一.传统算法 #include<stdio.h> #include<math.h> int jc(int x); int main(){double x,eps,y0.0;scanf("%lf%lf",&x,&eps);int de1,i1;double item1.0;while(fabs(item)>eps){itempow(x,i)/jc(de);i2;yitem;}printf("%.6f\n",y); …

服务端如何防止订单重复支付

概述 如图是一个简化的下单流程&#xff0c;首先是提交订单&#xff0c;然后是支付。 支付的话&#xff0c;一般是走支付网关&#xff08;支付中心&#xff09;&#xff0c;然后支付中心与第三方支付渠道&#xff08;微信、支付宝、银联&#xff09;交互。 支付成功以后&…