函数的意义

1 C语言中的函数

函数的由来

这里写图片描述

2 函数的意义

模块化程序设计

这里写图片描述

C语言中的模块化

这里写图片描述

3 面向过程的程序设计

  • 面向过程是一种以过程为中心的编程思想。
  • 首先将复杂的问题分解为一个个容易解决的问题。
  • 分解过后的问题可以按照步骤一步步完成。
  • 函数是面向过程在C语言中的体现。
  • 解决问题的每个步骤可以用函数来实现。

4 声明和定义

  • 声明的意义在于告诉编译器程序单元的存在。
  • 定义则明确指示程序单元的意义。
  • C语言通过extern进行程序单元的声明。
  • 一些程序单元(函数、结构体)在声明时可以省略extern。
  • 严格意义上的声明和定义并不相同。

实例分析:声明和定义不同

// test.c
#include <stdio.h>
#include <malloc.h>

extern int g_var;

extern struct Test;

int main()
{
    extern void f(int i, int j);
    extern int g(int x);

    struct Test* p = (struct Test*)malloc(sizeof(struct Test));
    //error: invalid application of ‘sizeof’ to incomplete type ‘struct Test’

    printf("p = %p\n", p);

    //g_var = 10;

    printf("g_var = %d\n", g_var);

    f(1, 2);

    printf("g(3) = %d\n", g(3));

    free(p);

    return 0;
}

// global.c
#include <stdio.h>

int g_var = 10;

struct Test
{
    int x;
    int y;
};

void f(int i, int j)
{
    printf("i + j = %d\n", i + j);
}

int g(int x)
{
    return (int)(2 * x + g_var);
}

小结

  • 函数是面向过程思想在C语言中的体现。
  • 面向过程是由上至下分解问题的设计方法。
  • 程序中的定义和声明完全不同。
  • C语言中通过extern对程序单元进行声明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值