C 程序结构

2023-10-26

原文链接:https://www.runoob.com/cprogramming/c-program-structure.html

在我们学习 C 语言的基本构建块之前,让我们先来看看一个最小的 C 程序结构,在接下来的章节中可以以此作为参考。

C Hello World 实例

C 程序主要包括以下部分:

  • 预处理器指令
  • 函数
  • 变量
  • 语句 & 表达式
  • 注释

让我们看一段简单的代码,可以输出单词 "Hello World":

实例

#include <stdio.h> int main() { /* 我的第一个 C 程序 */ printf("Hello, World! \n"); return 0; }

接下来我们讲解一下上面这段程序:

  1. 程序的第一行 #include <stdio.h> 是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。
  2. 下一行 int main() 是主函数,程序从这里开始执行。
  3. 下一行 /*...*/ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释。
  4. 下一行 printf(...) 是 C 中另一个可用的函数,会在屏幕上显示消息 "Hello, World!"。
  5. 下一行 return 0; 终止 main() 函数,并返回值 0。

编译 & 执行 C 程序

接下来让我们看看如何把源代码保存在一个文件中,以及如何编译并运行它。下面是简单的步骤:

  1. 打开一个文本编辑器,添加上述代码。
  2. 保存文件为 hello.c
  3. 打开命令提示符,进入到保存文件所在的目录。
  4. 键入 gcc hello.c,输入回车,编译代码。
  5. 如果代码中没有错误,命令提示符会跳到下一行,并生成 a.out 可执行文件。
  6. 现在,键入 a.out 来执行程序。
  7. 您可以看到屏幕上显示 "Hello World"
$ gcc hello.c
$ ./a.out
Hello, World!

请确保您的路径中已包含 gcc 编译器,并确保在包含源文件 hello.c 的目录中运行它。

如果是多个 c 代码的源码文件,编译方法如下:

$ gcc test1.c test2.c -o main.out
$ ./main.out

test1.c 与 test2.c 是两个源代码文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 程序结构 的相关文章

  • Reactjs鼠标滚轮监听

    1 添加相应的react所需的包及插件 npm install react s npm install react dom s 2 鼠标滚轮事件及引用子组件的滚轮处理事件 handleWheel function event 判断鼠标滚轮的
  • JavaBean配置

    在JSP内嵌入大量的Java代码可能会造成维护不方便 为此最好的方就是把JSP代码和Java代码分开 将JSP中的Java代码移植到Java类中 这些可能用到的类就是JavaBean JavaBean实现步骤如下 1 在src中新建一个be

随机推荐

  • 微型计算机上的南桥芯片功能,微型计算机主板上安装的主要部件

    如下 1 芯片组 芯片组是构成主板电路的核心 决定了主板的级别和档次 北桥芯片是主板上最重要的芯片 主要负责与CPU 内存 显卡进行通讯 南桥芯片负责连接硬盘 USB 接口 PCI 接口等其他接口 南桥芯片和北桥芯片之间也有联系 2 存储控
  • 洋桃电子STM32物联网入门30步笔记三、CubeMX图形化编程、设置开发板上的IO口

    此文档作为对杨桃电子视频的整理 B站链接 第四集 一 开启RCC的外部时钟 包括外部高速时钟HSE和外部低速时钟LSE 时钟配置三个选项的含义 选择禁用的话就只能使用内部时钟 旁路时钟源一般是有源晶振 晶体与陶瓷振荡器一般是无源晶振 二 开
  • 利用JS获取IE客户端IP及MAC的实现

    在做B S结构的系统时 我们常常需要获取客户端的一些信息 如IP和MAC 以结合身份验证 在ASP NET中 要获取服务器端的MAC很容易 但是要获取客户端的MAC的地址确要花费一翻心思 通常的做法是调用Win32API或直接调用nbtst
  • MySQL技术内幕InnoDB存储引擎 学习笔记 第六章 锁

    锁是数据库系统区别于文件系统的一个关键特性 锁机制用于管理对共享资源的并发访问 InnoDB引擎会对表数据上锁以提供数据的完整性和一致性 除此之外 还会对数据库内部其他多个地方使用锁 从而保证对多种不同资源提供并发访问 如增删改LRU列表中
  • 基于Centos7+pycharm搭建python获取爬虫小项目

    一 安装python环境 网上教程查阅 安装成功后运行 python 查看版本 python V 二 安装pycharm 应在步骤一完成后进行 到pycharm官网下载最新版本 下载链接 https www jetbrains com py
  • 详解 Springboot 中使用 Aop

    一 什么是 Aop AOP Aspect Oriented Programming 意为面向切面编程 可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术 AOP的编程思想是把对类对象的横切问题点 从
  • CentOS 修改时间

    Centos系统时间分为系统时间和硬件时间 二者必须都修改 重启系统才会永久生效 查询时间常用命令 date date R date z hwclock r 一 修改时区 修改时区 ln sf usr share zoneinfo Asia
  • XMind思维导图的结构逻辑该如何体现?3个功能完美体现!

    假设你在玩 模拟城市 但你必须使用以下工具来构建城市 中心主题 城市中心 关键思想 主要道路 次要的思想 次要的道路 标志 地标图片 那么你要怎么安排才能让城市结构附有逻辑性 让城市的规划更加合理 这就是我们将要讨论的问题 同样在我们的思维
  • 初始化列表的特性和构造函数的工作原理

    对于构造函数我们一直有个误区 就是构造函数用于初始化成员变量创建对象 实际上并不是这样的 真正的初始化并不是在构造函数中完成的 而是在初始化列表中完成的 构造函数中的实际上是赋值操作 要了解构造函数的工作原理 得先了解什么是初始化列表 初始
  • 快速达成目标的12种方

    2006 05 04 16 20 15 快速达成目标的12种方法 告诉自己你能主宰命运只有确立了前进的目标 一个人才会最大可能地发挥自己的潜力 主宰自己的命运 在你身上拥有钻石宝藏 美国宾夕法尼亚州著名学府坦普尔大学创始人康惠尔 在演讲中
  • 在superset中快速制作报表或仪表盘

    在中小型企业 当下需要快速迭代 快速了解运营效果的业务 急需一款开源 好用 能快速迭代生产的报表系统 老板很关心 BI工程师很关心 同时系统开发人员也同样关心 一个好的技术选型往往能够帮助公司减少很多成本 并且也不用BI或软件开发同事为了快
  • FRP运行过程中发现的安全漏洞,没有办法修复

    最近经常发送frp搭建外网访问内网不稳定 经过多次排查发现一个可怕的漏洞 这些 goroutines 结束之前正在等待一个 channel 关闭 而这个 channel 永远不会关闭 一个常见的死锁问题 这个进程毫无任何理由吃掉了 90 的
  • Hive Order By、Sort By、Distrbute By、Cluster By区别

    1 Order By 全局排序 只有一个Reducer 2 Sort By 分区内有序 3 Distrbute By 类似MR中Partition 进行分区 结合sort by使用 4 Cluster By 当Distribute by和S
  • XXX packages are looking for funding run `npm fund` for details解决方法

    今天用VScode导入一个vue项目 实现npm install 安装依赖遇到了一些小问题 搞了好久才终于搞好了 下面来直接进入主题 当在终端执行npm install时出现这种情况 然后我们再执行npm update 接下来我们执行npm
  • Mybatis框架(复杂动态SQL),一对一,一对多,多对多

    复合条件查询 动态SQL MyBatis 的强大特性之一便是它的动态 SQL 如果你有使用 JDBC 或其它类似框架的经验 你就能体会到根据不同条件拼接 SQL 语句的痛苦 例如拼接时要确保不能忘记添加必要的空格 还要注意去掉列表最后一个列
  • 哈工大OS实验五---基于内核栈切换的进程切换

    基于内核栈切换的进程切换 实验目的 将linux 0 11中采用的TSS切换部分去掉 取而代之的是基于堆栈的切换程序 写成一段基于堆栈切换的代码 要实现基于内核栈的任务切换 主要完成如下三件工作 重写switch to 将重写的switch
  • Mysql高级部分系列(四)

    1 数据库的设计规范 1 1 为什么不使用自增ID 1 1 1 自增ID的问题 自增ID做主键 简单易懂 几乎所有数据库都支持自增类型 只是实现上各自有所不同而已 自增ID除了简单 其他都是缺点 总体来看存在以下几方面的问题 1 1 1 1
  • idea 部署git总结

    idea 部署git总结 github密匙快捷获取方法 idea将本地项目上传到远程仓库GitHub 报错 error src refspec master does not match any Everything up to date
  • 【线程池上篇】4种常用线程池介绍

    一 线程池介绍 概念 使用原因 线程池就是提前创建好一些线程放在一起的集合 线程池的工作模式时拿到任务后在自己的池子里找看谁闲着 这个活就让谁去干 多线程模式下 系统需要不断地启动和关闭新线程 这个过程不但消耗资源而在存在线程间过渡的不安全
  • C 程序结构

    原文链接 https www runoob com cprogramming c program structure html 在我们学习 C 语言的基本构建块之前 让我们先来看看一个最小的 C 程序结构 在接下来的章节中可以以此作为参考