首页 > 编程语言 >1. C语言程序结构与编译执行

1. C语言程序结构与编译执行

时间:2025-01-03 09:25:21浏览次数:9  
标签:文件 代码 程序结构 程序 C语言 编译 源代码 hello

本章目录:


前言

在深入学习C语言编程之前,了解其基本构建块和程序结构是非常重要的。本文将详细介绍一个简单的C程序,并探讨如何编译和运行它。我们将从基础开始,逐步深入,确保读者能够全面理解每一个步骤。


C程序的基本结构

一个典型的C程序主要包括以下几个部分:

  1. 预处理器指令:用于包含头文件和其他预处理命令。
  2. 主函数:程序的入口点。
  3. 变量声明:用于存储数据。
  4. 语句和表达式:实现程序的逻辑功能。
  5. 注释:帮助解释代码的功能和逻辑。

示例代码

让我们来看一段简单的代码,它可以输出“Hello, World!”:

#include <stdio.h>

int main() {
    /* 我的第一个 C 程序 */
    printf("Hello, World! \n");
    return 0;
}

代码解析

  1. 预处理器指令#include <stdio.h> 告诉编译器在实际编译之前要包含 stdio.h 文件,该文件包含了输入输出函数的声明。
  2. 主函数int main() 是程序的入口点,从这里开始执行。
  3. 注释/* ... */ 之间的内容是注释,不会被编译器执行。它们用于解释代码的功能和逻辑。
  4. 打印函数printf("Hello, World! \n"); 是一个标准库函数,用于在屏幕上显示消息。
  5. 返回值return 0; 终止 main() 函数,并返回值 0,表示程序成功结束。

编译和运行C程序

接下来,我们看看如何保存源代码、编译并运行它。以下是详细的步骤:

保存源代码

  1. 打开一个文本编辑器(如Notepad++、VSCode等)。
  2. 将上述代码复制粘贴到编辑器中。
  3. 保存文件为 hello.c

编译源代码

  1. 打开命令提示符(Windows)或终端(Linux/Mac)。
  2. 使用 cd 命令导航到保存 hello.c 文件的目录。
  3. 使用 gcc 编译器编译代码:
    gcc hello.c -o hello
    
    • gcc 是GNU编译器集合的命令。
    • hello.c 是源文件名。
    • -o hello 指定输出文件名为 hello

运行可执行文件

  1. 在命令提示符或终端中,输入以下命令运行生成的可执行文件:
    ./hello
    
    • Windows系统上,直接输入 hello 即可。
  2. 您会看到屏幕上显示 “Hello, World!”。

注意事项

目标文件路径和名称

如果不指定目标文件名,默认生成的可执行文件名为 a.out(Linux)或 a.exe(Windows)。可以使用以下命令指定目标文件路径及文件名:

gcc hello.c -o target/hello

其中,target 目录必须已存在。如果不存在,可以先创建该目录:

mkdir target
gcc hello.c -o target/hello
避免程序一闪而过

在Windows系统上,生成的 .exe 文件运行时会一闪而过,这是因为 main() 函数结束时,DOS窗口会自动关闭。为了避免这个问题,可以在 return 0; 前加入 system("pause"); 语句:

#include <stdio.h>
#include <stdlib.h> 

int main() {
    /* 我的第一个 C 程序 */
    printf("Hello, World! \n");
    system("pause");      //暂停函数,请按任意键继续...
    return 0;
}

这样,程序会在执行完 printf 后等待用户按键,从而可以看到结果。

使用批处理文件避免闪退

另一种方法是创建一个批处理文件(*.bat),自动定位到当前 .exe 文件所在目录并运行程序:

  1. 在当前目录下创建一个文本文档,并将其重命名为 run_hello.bat
  2. 编辑 run_hello.bat 文件,添加以下内容:
    cmd /k "cd %cd% && hello"
    
  3. 双击 run_hello.bat 文件,即可运行 hello.exe 并查看结果。

总结

通过以上步骤,您可以顺利编译和运行一个简单的C程序,并掌握一些实用的技巧来避免常见的问题。希望这篇文章对您有所帮助!


标签:文件,代码,程序结构,程序,C语言,编译,源代码,hello
From: https://blog.csdn.net/wzt001005/article/details/144773771

相关文章

  • 编译CUDA时的ARCH参数
    https://blog.csdn.net/Vingnir/article/details/135255072在编译CUDA程序时,ARCH是指定给nvcc(NVIDIACUDACompiler)的一个重要参数。ARCH代表着目标GPU的计算能力(ComputeCapability),这是一个特定于NVIDIAGPU架构的指标,用于表明GPU支持的特性和指令集。关于CUDA计算能力(Com......
  • Win32汇编学习笔记02.RadAsm和联合编译
    https://bpsend.net/thread-151-1-1.html汇编使用资源汇编使用资源的方式和C的一样,也是把资源文件rc编译成 res 再链接进去,汇编没有自己的资源编辑器,需要借助vc6.0或者vs主要是把头文件.h转化为对应的.inc使用vc6.0建立资源文件用vs建立资源文件......
  • 在Lazarus下的Free Pascal编程教程——按数据流程规划程序结构
    0.前言我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”和“2.已经......
  • Windows编译QT6.4.3及使用
    1.下载QT6.4.3源码,并解压Indexof/archive/qt/6.4/6.4.3/singlehttps://download.qt.io/archive/qt/6.4/6.4.3/single/  2.安装环境*CMake3.18orlater*Perl5.8orlater*Python2.7orlater*C++compilersupportingtheC++17standard3.打开windows的cmd......
  • 基于C语言的卡丁车管理系统【控制台应用程序】
    注意:需要提前创建对应的.dat文件本项目实现了数据的永久存储,有用户的注册、登录。管理员对卡丁车的管理、查看预约用户、修改帐户权限。用户对个人信息的管理、查看并预约卡丁车、卡丁车维修上报。维修员对卡丁车的维修状态上报、个人信息管理。登录信息页面login.h/......
  • 基于扩频解扩+LDPC编译码的16QAM图传通信系统matlab误码率仿真,扩频参数可设置
    1.算法仿真效果matlab2022a仿真结果如下(完整代码运行后无水印):  仿真操作步骤可参考程序配套的操作视频。 2.算法涉及理论知识概要       该通信系统主要用于图像传输,适用于对图像质量和传输可靠性要求较高的场景,如无人机图像传输、视频监控、无线电视广播等......
  • Openwrt 下SRS编译安装及配置使用问题总结
    Openwrt下SRS编译安装及配置使用问题总结基本概念应用背景Openwrt安装SRS方案方案一:交叉编译(失败,不推荐)方案二:目标板编译(编译成功,运行失败,不推荐)安装依赖源码安装问题解决Buildingopenssl-1.1-fit.Can'tlocateFindBin.pmin@INC(youmayneedto......
  • (二)编译原生SDK以及配置交叉编译链
    文章目录编译原生SDKLinuxSDK的安装第一步解压LinuxSDK第二步安装依赖软件第三步解压Buildroot的dl文件Linux系统镜像编译、生成第一步配置编译环境第二步编译LinuxSDK编译上面配置好的环境配置编译LinuxSDK配置内核选项配置Buildroot编译Qt库编译生成Linux......
  • Android 编译 m、mm、mmm、mma、mmma区别
    前言全局说明Android编译m、mm、mmm、mma、mmma区别一、说明1.1环境:二、总结命令说明备注m编译全部Android源码。完整构建。同:makemm用于当前目录构建mmm用于指定路径构建mmmpath/to/module1path/to/module2mma编译当前目录模块并安装......
  • 编译android版本的pcl库
    pcl是做什么的在此就不解释了,否则你也不会点开这篇博客看,直入主题。1、Miniconda装Miniconda的目的是因为pclandroid编译包用到了conan,为了不污染整个python环境,使用miniconda创建一个新环境,这个直接跟着官网步骤走。mkdir-p~/miniconda3wgethttps://repo.anaconda.com/......