C语言编译器(C语言编程软件)完全攻略(第二十六部分:C-Free使用教程(使用C-Free编写C语言程序))

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

二十六、C-Free使用教程(使用C-Free编写C语言程序)

1、安装C-Free 5.0

C-Free 是一款国产的Windows下的C/C++ IDE,最新版本是 5.0,整个软件才 14M,非常轻巧,安装简单。

下载地址:C-Free 5.0下载

按照教程中的说明安装并激活 C-Free 5.0。

需要注意的是:C-Free 5.0 在 XP、Win7 下能够完美运行,在 Win8、Win10 下可能会存在兼容性问题,读者可以先尝试安装,不行的话再使用 VS、Dev C++、Code::Blocks 等代替。

2、运行C语言代码

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

#include <stdio.h>

int main()

{

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

        return 0;

}

接下来,我们就来看看如何通过C-Free 5.0来运行这段代码。

(1)新建源文件

打开C-Free,通过新建菜单或Ctrl+N新建文件,然后通过保存菜单或Ctrl+S将文件保存到E:\Demo目录,并命名为hello.c,如下图所示:

图1:新建菜单和保存菜单

图2:命名为 hello.c,并保存到 E:\Demo 目录

C语言源文件的后缀为.c。不过你也可以保存为hello.cpp,它将以C++的方式运行,因为C++兼容C语言,所以不会出现错误,不过我依然建议大家保存为hello.c

(2)编写源代码

新建文件后,就可以输入本文开头给出的代码了。

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

(3)编译和链接

在C-Free的工具栏中,有三个按钮特别重要,分别为“运行”“编译”和“构建”,如下图所示:

图4:常用的几个按钮

代码输入完成后,点击“编译”按钮或者按F11键,就完成了源文件的编译,下方控制台中会显示编译信息:

图5:编译成功

如果我们的代码语法有错误,比如puts("C语言中文网");语句最后忘记写;,编译就会失败:

图6:编译失败

编译成功后,打开 E:\Demo 目录,发现新生成了一个文件hello.o,而不是我们期望的hello.exe。这是因为,编译虽然生成了二进制文件,但是它还不能独立运行,还需要系统库(暂时可以理解为系统中的一些组件)的支持,.o 必须和系统库组合在一起才能生成 .exe,这个组合的过程就叫做链接(Link)

.o文件叫做目标文件(Object File),它是编译的结果,是中间文件,已经是非常接近 .exe 的二进制文件了,只是还缺少一些东西,必须由系统库提供。

点击“构建”按钮或者按Ctrl+F11组合键,就完成了 hello.o 和系统库的链接,打开 E:\Demo,终于看到了期待已久的 hello.exe。至此,我们就将C语言代码转换成了可执行文件了。

(4)运行程序

运行生成的 hello.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");无效。

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

图7:第一个C语言程序

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

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

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

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

(5)更加快捷的方法

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

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

不过,实际开发中我们最常用的是“运行”按钮或F5快捷键,它会一次性完成编译、链接和运行的操作,并让程序运行结束后自动暂停,这样我们就不必额外增加system("pause");语句了。

再次将本文开头部分的代码输入编辑器,点击“运行”按钮或按F5,就可以看到运行结果,如下图所示:

图8:点击“运行”按钮

你可以认为,是编译器在程序最后自动添加了 system("pause");语句。

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

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

相关文章

shell编程学习(二)

变量的类型 预定义变量 $$ 当前进程PID $? 命令执行后的返回状态.0 为执行正确&#xff0c;非 0 为执行错误 $# 位置参数的数量 $* 所有位置参数的内容 …

前端性能优化之图像优化

图像优化问题主要可以分为两方面&#xff1a;图像的选取和使用&#xff0c;图像的加载和显示。 图像基础 HTTP Archive上的数据显示&#xff0c;网站传输的数据中&#xff0c;60%的资源都是由各种图像文件组成的&#xff0c;当然这些是将各类型网站平均的结果&#xff0c;单独…

Mysql SQL审核平台Yearning本地部署

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具&#xff0c;为DBA与开发人员使用…

阿里云服务器公网带宽1M/3M/5M/10M/50M百兆下载速度表

阿里云服务器公网带宽上传和下载速度对照表&#xff0c;1M带宽下载速度是128KB/秒&#xff0c;为什么不是1M/秒&#xff1f;阿腾云atengyun.com分享阿里云服务器带宽1M、2M、3M、5M、6M、10M、20M、30M、50M、100M及200M等公网带宽下载和上传速度对照表&#xff0c;附带宽价格表…

C# Winform 在低DPI创建窗体后,在高DPI运行时,窗体会自动拉伸,导致窗体显示不全

C# Winform 在低DPI创建窗体后&#xff0c;在高DPI运行时&#xff0c;窗体会自动拉伸&#xff0c;导致窗体显示不全&#xff0c; 比如在分辨率为100% 的电脑创建C#项目&#xff0c;当运动到分辨率为125%的电脑运行时&#xff0c;后者运行的窗体会自动拉伸&#xff0c;窗体显示…

【linux学习笔记】网络

目录 【linux学习笔记】网络检查、监测网络ping-向网络主机发送特殊数据包traceroute-跟踪网络数据包的传输路径netstat-检查网络设置及相关统计数据 【linux学习笔记】网络 检查、监测网络 ping-向网络主机发送特殊数据包 最基本的网络连接命令就是ping命令。ping命令会向指…

Java二叉树的遍历以及最大深度问题

Java学习面试指南&#xff1a;https://javaxiaobear.cn 1、树的相关概念 1、树的基本定义 树是我们计算机中非常重要的一种数据结构&#xff0c;同时使用树这种数据结构&#xff0c;可以描述现实生活中的很多事物&#xff0c;例如家谱、单位的组织架构、等等。 树是由n&#…

VMware中找到存在但是不显示的虚拟机(彻底发现)VMware已创建虚拟机不显示

删除VMware中的虚拟机的时候&#xff0c;可能没有把虚拟机完全删除&#xff0c;或者说 “移除” 后找不到虚拟机在哪里&#xff0c;内存空间也没有得到释放&#xff0c;那该如何解决呢&#xff1f; 1.明确&#xff1a; “移除” 不等于 “从磁盘删除” 移除&#xff1a;只…

【IPC通信--socket套接字--心跳包】

Socket 心跳包 提高网络通信稳定性 随着网络通信技术的不断发展&#xff0c;网络通信已成为我们日常工作和生活中不可或缺的一部分。但是在使用网络通信的过程中&#xff0c;时常会遇到网络延迟、丢包等问题&#xff0c;这些问题不仅影响我们的工作和生活效率&#xff0c;也会…

【Pytorch】学习记录分享14——视频分析3D卷积

【Pytorch】学习记录分享14——视频分析3D卷积 1. 视频分析 3D卷积2. UCF101数据3. U3D算法 1. 视频分析 3D卷积 3D卷积的简介 在图像处理领域&#xff0c;被卷积的都是静态图像&#xff0c;所以使用2D卷积网络就足以。而在视频理解领域&#xff0c;为了同时保留时序信息&…

解决DolphinDB vscode插件重启后无法访问的问题

把vscode的代理关掉&#xff1a; 左下角小齿轮&#xff0c;打开setting搜索框里搜索proxy将Http:Proxy Support从override改为off&#xff0c;即可生效

python实现多进程和多线程

目录 一&#xff1a;介绍 二&#xff1a;多线程实现 三&#xff1a;多进程实现 一&#xff1a;介绍 Python 的多线程和多进程都是实现并发执行的方式&#xff0c;但它们有一些关键的区别&#xff1a; 线程共享进程的资源&#xff0c;而进程拥有自己的资源。这意味着线程之间…

Java SE入门及基础知识合集

Java SE入门及基础&#xff08;1&#xff09;&#xff1a;JavaSE入门及基础&#xff08;1&#xff09;-CSDN博客 Java SE入门及基础&#xff08;2&#xff09;&#xff1a;Java SE入门及基础&#xff08;2&#xff09;-CSDN博客 Java SE基础及入门&#xff08;3&#xff09;&…

K210基础实验系列

CanMV K210 开发板: CanMV K210 是由 01Studio 设计研发&#xff0c;基于嘉楠科技边缘计算芯片 K210 &#xff08; RSIC V 架构&#xff0c; 64 位双核&#xff09;方案的一款开发板&#xff0c;采用硬件一体化设计&#xff08; K210 核心板、 摄像头、 LCD 集成在一个…

聊一聊 webpack 和 vite 的开发服务代理的问题

webpack 和 vite webpackVite重新编辑的问题 changOrigin: true如何定义 /api ? webPack And Vite 都是两个比较好用的打包工具&#xff0c;尤其是 Vite, 几几年流行忘记了&#xff0c;特色就是服务启动极快&#xff0c;实现预加载&#xff0c;感觉 webPack 要比 Vite 要复杂一…

Redis反序列化的一次问题

redis反序列化的一次问题 1. 问题描述 springbootredis不少用&#xff0c;但是一直没遇到什么问题&#xff0c;直接代码拷贝上去就用了。这次结合spring-security&#xff0c;将自定义的spring-security的UserDetails接口的实现类SecurityUser&#xff0c;反序列化取出时报错…

java推荐系统:好友推荐思路

1.表的设计 表里面就两个字段&#xff0c;一个字段是用户id&#xff0c;另外一个字段是好友id&#xff0c;假如A跟B互为好友&#xff0c;那在数据库里面就会有两条数据 2.推荐好友思路 上面的图的意思是&#xff1a;h跟a的互为好友&#xff0c;a跟b&#xff0c;c&am…

JavaScript 中的数组过滤

在构建动态和交互式程序时&#xff0c;您可能需要添加一些交互式功能。例如&#xff0c;用户单击按钮以筛选一长串项目。 您可能还需要处理大量数据&#xff0c;以仅返回与指定条件匹配的项目。 在本文中&#xff0c;您将学习如何使用两种主要方法在 JavaScript 中过滤数组。…

OS_lab——bochs源码的编译与安装

1. 实验环境VMware station 15 Ubuntu 14.04.6 32位。2. 实验步骤2.1 安装虚拟机&#xff0c;并在虚拟机根目录下编译并安装bochs环境。 2.2 使用bochs自带工具bximage创建虚拟软驱。 2.3 编写引导程序boot.asm并用nasm编译得到引导文件boot.bin和boot.com。 2.4 修改bochs…

密码学中的Hash函数

目录 一. 介绍 二. hash函数的五个基本性质 &#xff08;&#xff11;&#xff09;压缩性 &#xff08;&#xff12;&#xff09;正向计算简单性 &#xff08;&#xff13;&#xff09;逆向计算困难性 &#xff08;&#xff14;&#xff09;弱无碰撞性 &#xff08;&…