C自定义函数类型

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

/*---------------------自定义函数类型--------------------*/
typedef int sum(int a, int b);

typedef struct func_st{
    sum *p_sum;
}func_t;


int int_add(int a, int b)
{
    return (a + b);
}


int main()
{
    func_t *my_func = NULL;
    int sum;

    my_func = (func_t *)malloc(sizeof(func_t));
    my_func->p_sum = int_add;
    sum = my_func->p_sum(10, 20);
    printf("-----sum = %d\n", sum);

    free(my_func);
    my_func = NULL;

    return 0;
}
测试结果:

g++ test.cpp -o test

./test

-----sum = 30

### C语言自定义函数的定义与用法 #### 函数的基本概念 在C语言中,函数是一组完成特定任务的代码集合。通过将功能模块化,可以提高代码的可读性和重用性。C语言支持用户自定义函数,允许开发者编写自己的逻辑并封装成独立的功能单元。 #### 自定义函数的结构 一个完整的自定义函数通常由以下几个部分组成: 1. **返回类型** 返回类型指明了该函数执行完毕后会返回的数据类型。如果不需要返回任何数据,则使用`void`作为返回类型[^1]。 2. **函数名** 函数名称应具有描述性,以便于理解其用途。遵循命名规则,避免使用保留关键字。 3. **参数列表** 参数列表用于接收外部传入的数据。如果没有参数传递需求,则声明为空括号`()`或者显式写为`void`。 4. **函数体** 函数体内包含了实现具体功能的代码块。 以下是标准语法形式: ```c <返回类型> <函数名>(<参数类型1> <参数名1>, ..., <参数类型n> <参数名n>) { // 函数体 } ``` #### 创建自定义函数的例子 下面展示了一个简单的例子来说明如何创建和调用一个求两数之和的函数: ```c #include <stdio.h> // 声明函数原型 (也可以放在头文件中) int add(int a, int b); int main() { int num1 = 5; int num2 = 7; // 调用add函数并将结果存储到sum变量中 int sum = add(num1, num2); printf("Sum of %d and %d is %d\n", num1, num2, sum); return 0; } // 定义实际的add函数 int add(int a, int b) { return a + b; } ``` 上述代码展示了从定义到使用的全过程。 #### 关于返回数组的情况 需要注意的是,在某些情况下可能希望让函数返回整个数组而非单一值。然而由于数组本质上是指针地址的概念,直接返回本地作用域内的数组会导致不可预期的结果因为当离开那个作用域之后原内存空间会被释放掉[^2]。因此推荐做法要么分配动态内存要么利用全局静态区域保存所需数据直到不再需要为止。 #### 总结 综上所述,掌握好这些基础知识对于进一步深入学习高级特性非常重要。合理运用自定义函数可以使程序更加清晰简洁高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值