C——程序结构

C语言的程序结构主要基于函数(Function)的概念,以及包括头文件(Header Files)、全局变量、局部变量、主函数(main function)等组成部分。C程序从main函数开始执行,并在main函数结束时终止(除非在main函数中调用了其他函数,而这些函数可能导致程序继续执行,比如操作系统级的调用或多线程程序)。下面是一个典型的C语言程序结构的概述:

1. 包含头文件(Include Directives)

程序的开始通常是一些预处理指令,用于包含(include)标准库或其他自定义的头文件。这些头文件包含了程序运行所需的各种声明,如函数原型、宏定义、类型定义等。

#include <stdio.h> // 包含标准输入输出库

2. 包含变量

全局变量声明

在函数外部声明的变量是全局变量,它们在程序的整个执行期间都可用。不过,在实际编程中,为了代码的清晰和维护性,应尽量减少全局变量的使用。

int globalVar = 10; // 全局变量示例

 局部变量和类型定义

在函数内部声明的变量是局部变量,它们只在声明它们的函数内部可见。此外,C语言允许通过typedef关键字来定义新的类型名。

void anotherFunction() {  
    int localVar = 20; // 局部变量示例  
    // 函数体  
}  
  
typedef unsigned long ulong; // 类型定义示例

3. 函数定义

在C语言中,函数是执行特定任务的代码块。程序可以由多个函数组成,但每个C程序都必须有一个main函数,作为程序的入口点。

void myFunction() {  
    // 函数体  
    printf("Hello, this is a function.\n");  
}  
  
int main() {  
    // 主函数体  
    printf("Hello, World!\n");  
    myFunction(); // 调用自定义函数  
    return 0;  
}

如上所述,main函数是C程序的入口点。程序的执行从这里开始。main函数可以返回一个整数给操作系统,通常用于表示程序的退出状态(0表示成功,非0表示错误或特定状态)。

4.语句 & 表达式

  • 表达式用于表示或计算一个值。
  • 语句是程序的基本执行单元,它告诉计算机执行一个操作或一系列操作。
  • 表达式语句是由表达式后跟分号组成的语句。
  • 控制结构语句用于控制程序的流程,包含条件语句和循环语句等。

在C语言中,语句(Statements)和表达式(Expressions)是构成程序的基本单元,它们在程序执行过程中扮演着不同的角色。

表达式(Expressions)

表达式是由运算符(Operators)和操作数(Operands)组成的序列,用于表示一个值或计算出一个值。表达式可以包括常量、变量、函数调用、运算符以及括号等。表达式的结果(或称为“值”)的类型取决于表达式的组成元素和使用的运算符。

例如:

  • 5 + 3 是一个表达式,其结果是 8
  • a * b 也是一个表达式,其中 a 和 b 是变量,表达式的值取决于 a 和 b 的具体值。
  • sqrt(x) 是一个函数调用表达式,其中 sqrt 是计算平方根的函数,x 是参数,表达式的值是 x 的平方根。

语句(Statements)

语句是程序的基本执行单元,它告诉计算机执行一个操作或一系列操作。在C语言中,语句通常以分号(;)结束。语句可以是简单的表达式,也可以是包含控制结构(如条件语句、循环语句)的复合语句。

表达式语句

最简单的语句是表达式语句,它由一个表达式后跟一个分号组成。例如:

x = 5; // 这是一个赋值表达式语句,将5赋值给变量x

在这个例子中,x = 5 是一个表达式(赋值表达式),后面跟着一个分号,因此它构成了一个语句。

控制结构语句

控制结构语句用于控制程序的流程,包括条件语句(如 ifswitch)和循环语句(如 forwhiledo...while)。这些语句通常包含一个或多个表达式,但整个结构被视为一个语句。

例如:

if (x > 0) {
printf("x is positive\n");
}

在这个例子中,if 语句包含了一个条件表达式 x > 0 和一个复合语句(由大括号 {} 包围的语句块)。整个 if 语句(包括其内部的复合语句)被视为一个单一的语句。

5. 注释

C语言支持单行注释(以//开始)和多行注释(以/*开始,以*/结束)。注释用于解释代码的功能,不会被编译器执行。

// 单行注释  
  
/*   
   多行注释  
   可以跨越多行  
*/

6.编译 & 执行

编译和执行C程序通常涉及几个步骤,这些步骤可能会根据你使用的操作系统和开发环境有所不同。不过,下面是一个在大多数系统上通用的基本流程:

1. 编写C程序

首先,你需要使用文本编辑器(如Vim、Emacs、Notepad++、Visual Studio Code等)编写你的C程序。程序通常保存在一个以.c为扩展名的文件中,例如hello.c

示例:hello.c

#include <stdio.h>  
  
int main() {  
    printf("Hello, World!\n");  
    return 0;  
}

接下来,你需要使用C编译器(如GCC、Clang、MSVC等)来编译你的C程序。编译器会将你的源代码(.c文件)转换成可执行文件(在Windows上通常是.exe文件,在Unix-like系统上通常没有扩展名,但可以通过./来执行)。

在Unix-like系统(如Linux和macOS)上

如果你使用的是GCC或Clang,可以在终端中运行以下命令来编译你的程序:

gcc hello.c -o hello
# 或者使用Clang
clang hello.c -o hello

这里,-o hello选项告诉编译器将输出文件命名为hello(没有.exe扩展名)。

在Windows上

如果你使用的是GCC或Clang(通过MinGW、Cygwin或WSL等工具),步骤与Unix-like系统相同。但如果你使用的是MSVC(Microsoft Visual C++),你可能会使用Visual Studio IDE来编译你的程序,或者通过命令行工具(如cl.exe)来编译。

3. 执行C程序

编译完成后,你就可以执行你的程序了。

在Unix-like系统上

在终端中,你可以通过以下命令来执行你的程序:

./hello

注意前面的./,它告诉shell在当前目录下查找名为hello的可执行文件。

在Windows上

如果你是在命令提示符(CMD)或PowerShell中,你可以直接通过文件名来执行程序(假设你的当前目录在程序所在的目录中):

hello

或者,如果你使用的是Visual Studio IDE,你可以通过IDE内的“运行”按钮来执行程序。

注意事项

  • 确保你的编译器已经正确安装在你的系统上,并且其可执行文件位于你的PATH环境变量中,这样你就可以在终端或命令提示符中直接调用它了。
  • 编译时可能会遇到错误或警告,这些都需要你根据编译器的输出信息进行修正。
  • 如果你的程序依赖于特定的库或头文件,你可能需要在编译时指定它们的路径或使用特定的编译器选项。
  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值