基础C程序的开发和编译

简介: 基础C程序的开发和编译

总纲

  • 使用C语言的7个步骤

    graph LR
    A[定义程序的目标] --> B[设计程序]
    B --> C[编写代码]
    C --> D[编译]
    D --> E[运行程序]
    E --> F[测试和调试程序]
    F --> G[维护和修改程序]

步骤详解

  1. 定义程序的目标

在写代码之前,首先要明确自己的思路,了解要完成任务的目标。

  1. 设计程序

明确程序的实现方案,比如页面展示对应的接口有哪些?预估完成时间、大概使用哪些方法来写代码。

  1. 编写代码

这个没什么好说明的,后面学习。注意要在代码中加上注释,便于后期的维护。

  1. 编译

编译时至由编译器把源代码转换成可执行的程序,可执行代码是用计算机的机器语言表示的代码。这种语言由数字码表示的指组成。不同的计算机使用不同的机器语言方案,C编译器负责把C代码翻译成特定的机器语言。
编译器会检查C语言程序是否有效,如果编译器发现错误会报错。

  1. 运行程序

可以在终端输入编译后的文件名执行,也可以双击文件直接运行。

  1. 测试和调试程序

自己跑一遍程序,排除一些语法上的或者是逻辑的漏洞等,简称找bug。

  1. 维护和修改程序

改bug或者是对代码进行优化升级等。

说明

上面的7个使用步骤其实只是一个大概的流程,在真实的开发中并不一定是按照这个流程进行的,这里只是提供了一个方案。

C语言代码的编译过程

image.png

c程序的组成部分

  • C程序由一个或多个函数组成,必须有main()函数。
  • 无论main()函数放在程序文件的什么位置,都会从main()开始执行。
  • 函数有函数头和函数体组成。
  • 函数头包括函数名、传入该函数的信息类型和函数的返回类型。

image.png

  • 示例格式

    #include <stdio.h>
    int main(void)
    {
        语句
        return 0;
    }

第一个程序

  • 代码:

    # include <stdio.h>
    /* 一个简单的程序 */
    int main(void)  
    {
        int num;  // 定义一个数字变量
        num = 1;  // 为变量num赋值
        printf("i am a simple ");  //使用printf函数打印数据
        printf("computer. \n");
        printf("第 %d 个C语言程序\n", num);
        return 0;
    }
  • 输出

    i am a simple computer. 
    第 1 个C语言程序

代码解释

  • int main(void)中的int表明main()函数应返回一个int(整数)。void表明函数main()不带任何参数。
  • int num;定义一个变量。
  • num = 1;为变量num赋值。
  • 实际参数(实参):函数中实际的参数,如上面的printf("i am a simple "),i am a simple 就是printf的实参。
  • 形式参数(形参):函数中用于存储值的变量。
  • return 0;表示函数main()结束并且返回值0

第二个程序

  • 代码

    # include <stdio.h>
    
    void new_fun(void);  // ANSI/ISO C函数原型
    
    int main(void)
    {
        printf("第二个C程序, 运行上面的new_fun函数\n");
        new_fun();
        printf("运行完毕\n");
        return 0;
    }
    
    void new_fun(void)
    {
        printf("执行new_fun函数\n");
    }
  • 输出

    第二个C程序, 运行上面的new_fun函数
    执行new_fun函数
    运行完毕

代码解释

  • 第一个void new_fun(void);是一个函数原型。既是告知编译器正在使用函数new_fun(),因此函数原型也被称为函数声明。其中的第一个void表示new_fun()函数没有返回值,第二个void表示new_fun()没有参数。
  • 第二个void new_fun(void)以及下面的语句是new_fun()函数的定义。函数new_fun()何时执行取决于在main()函数中的调用位置,和new_fun()函数是否定义在main()函数之前没有关系。

第三个程序

  • 代码

    # include <stdio.h>
    int main(void)
    {
        float weight;
        float value;
        printf("你的体重是多少斤?\n");
        printf("让我们去看看。\n");
        printf("请输入你的体重(公斤):\n");
        scanf("%f", &weight);
        value = 2 * weight;
        printf("你的体重是 %.2f斤\n", value);
        printf("你的体重是 %.2f公斤\n", weight);
        return 0;
    }
  • 输出

    你的体重是多少斤?
    让我们去看看。
    请输入你的体重(公斤):# (这里输入的了75)
    你的体重是 130.00斤
    你的体重是 75.00公斤

代码解释

  • scanf()函数用于读取键盘的输入。
  • %f说明scanf()要读取用户从键盘输入的浮点数。
  • &weight告诉scanf()把输入的值赋给名为weight的变量。
相关文章
|
2月前
|
存储 自然语言处理 编译器
【C语言】编译与链接:深入理解程序构建过程
【C语言】编译与链接:深入理解程序构建过程
|
6月前
|
Windows 计算机视觉 Linux
QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇
该文档介绍了Qt的跨平台特性,并推荐在Windows和Linux开发中使用QtCreator。在Windows下添加动态库,可以通过Visual Studio配置.lib文件和.dll文件,或在QtCreator中使用&quot;添加库&quot;功能。在QtCreator中,选择库文件、包含路径,并配置Details,然后更新.pro文件,清除、qmake及构建项目。运行时确保.dll与.exe在同一目录下。
209 0
QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇
|
6月前
|
机器学习/深度学习 并行计算 计算机视觉
【入坑指南】| OpenCV4.8 + CUDA + 扩展模块支持编译
【入坑指南】| OpenCV4.8 + CUDA + 扩展模块支持编译
531 0
|
7月前
|
安全 编译器 C语言
【C++ 编译器 版本支持】深度解读C++ 版本以及编译器版本相关宏
【C++ 编译器 版本支持】深度解读C++ 版本以及编译器版本相关宏
140 0
|
7月前
|
C语言 C++
win32编程 -- 编写静态库空项目
win32编程 -- 编写静态库空项目
37 0
使用Visual studio 2013 创建C语言Helloworld程序
使用Visual studio 2013 创建C语言Helloworld程序
使用Visual studio 2013 创建C语言Helloworld程序
|
存储 自然语言处理 程序员
C语言 程序环境 编译和链接
C语言 程序环境 编译和链接
|
Linux 编译器 C语言
C语言进阶教程(一个可执行文件生成的具体步骤)
C语言进阶教程(一个可执行文件生成的具体步骤)
164 0
|
IDE Shell Go
【100天精通python】Day18:python程序异常与调试_常用程序调试方式与技巧,如何将调试代码与正式代码分开
【100天精通python】Day18:python程序异常与调试_常用程序调试方式与技巧,如何将调试代码与正式代码分开
249 0
|
C语言 C++ Windows
vscode快速配置c语言环境
vscode一分钟快速配置c语言环境
vscode快速配置c语言环境
下一篇
DataWorks