zl程序教程

您现在的位置是:首页 >  其他

当前栏目

初识C程序

程序 初识
2023-06-13 09:15:19 时间

Hello,大家好,我是木荣君,为了帮助初学者学习C程序的基本结构,今天这一节我们介绍一个完整的C程序,并学习其中的每个部分,带大家初识C程序。好了,Let's go~

1. 简单的C程序

  • 先来看一个简单的C程序
#include <stdio.h>

#define CNT 10

int MyFirstC(void)
{
    int i;
    for (i = 0; i < CNT; i++)
    {
        printf("My First C,Hello World! %d\n", i);
    }
    
    return 0;
}

int main(int argc, char const *argv[])
{
    MyFirstC();   // 函数调用
     
    return 0;
}

这是一个很简单的程序,指定输出多次相同的一句话。现在,还不用了解程序的各个细节和原理。关键是要熟悉C程序的各个部分,以便后面学习C语言。在查看程序之前我们先来看看程序的执行结果

要想学习C程序,首先我们要了解函数,因为函数是C语言程序设计的核心内容。那么什么是函数呢?函数是一段执行某项任务的代码,要指定函数的名称,程序中通过引用函数名,可以执行函数中的代码,程序还能将信息作为参数传递给函数,而函数也能将处理结果返回给程序。在C语言中我们常用两种类型的函数:库函数和用户自定义函数,库函数是编译器软件的一部分,而用户自定义函数是用户自己定义编写的程序代码段。

2. 程序的组成

  • 下面我们将分析程序的各个部分

main函数

  • 在每个可执行的C程序中main函数是必须的,在简单的情况下main函数由函数名main与其后的一对圆括号()和一对花括号{}组成。当然也可以给main函数指定传入参数和返回值,一般的标准写法就像例程中那样int main(int argc, char const *argv[]),此处我们不必过多深究,随着学习的进行我们会逐步了解main函数参数的使用。

#include和#define关键字

#include和#define位于例程中的开始部分。

  • #include指令指示C编译器在编译时将包含头文件的内容添加到程序中。包含的文件是程序需要使用的头文件信息,一般包含函数的声明等,在调用库函数时需要指定对应的头文件才可以正常编译。一般所有的C程序都要包含一个或多个头文件
  • #define指令是宏定义项,在整个程序中替换指定项。如果用#define在程序的顶部设置了宏定义,不仅整个程序都能使用该项,而且在需要时可以很方便的修改该项,只需要修改#define这一行就行了,便可以替换所有该项的值,省去了逐一替换的麻烦。

变量

  • 定义变量位于int i,变量在内存中用于存储信息。在程序执行期间,程序使用变量存储各种不同类型的信息。在C语言中变量必须先定义后使用,否则编译会报语法错误。变量的定义告诉编译器变量的名称和存储信息的类型。

自定义函数

  • 函数调用之前必须先声明,这样程序才能找到函数片段。此例程中我们定义了一个函数为int MyFirstC(void),此函数的返回值为int型,传入参数为空,也就是不进行参数传递。函数在调用时直接写函数原型即可。
  • 函数中我们除了定义了变量,还使用了程序语句for、printf、return语句,其中for语句是循环语句,根据宏定义指定循环次数。而printf语句是标准输出语句,将自定义信息打印到标准输出中,显示到屏幕上。

程序注释

  • 在C语言中程序注释是以/* */ 或者 //,前者一般是对程序段进行注释,后者一般是对某句话进行注释。编译器会忽略所有的注释,无论你注释写在任何位置或任何内容,都不会影响程序的执行。注释只是方便程序阅读,提高程序的可读性和可维护性。

    /*定义变量a和b*/
    int a = 0;
    int b = 0;

    int c = -1; // 定义变量C并初始化为-1

编译

  • 最后通过GCC编译生成可执行性程序,生成可执行程序一般经历预处理、编译、汇编、链接四个阶段。具体每个阶段的介绍,有兴趣的读者可参看之前的文章《Linux系统刨析helloword背后的秘密》,其中有详细介绍。对于初学者来说可以暂不了解。

结束语

本节到此结束,初步认识了一个简单的C程序的构成,让我们对C程序有了一个基本的认识并对后续的学习中起到抛砖引玉的作用。虽然内容较少,但是非常重要。