C语言那些事之如何自定义函数变量

本文介绍了如何在C语言中定义函数变量类型,通过实例展示了串口使用情况,强调了这种做法在事件回调和软件封装隐秘性增强上的应用,并解析了其实现原理。

写在前面
可用于事件回调,使软件封装隐秘性更强

一、定义函数变量类型

typedef void (*MyUart_callBack)(void *buf, size_t count);
说明:

  • MyUart_callBack为变量类型名称,类似int或者char变量类型
  • void *buf, size_t count为函数传参

二、实例

以串口的使用举例
底层封装

static MyUart_callBack MyUart_recvCB;
void Uart_ReadCallback(UART_Handle handle, void *buf, size_t count)
{
   
   
    MyU
给定的引用内容中未提及C语言中用于保存自定义函数变量函数相关信息。在C语言里,通常不会用专门的函数来保存自定义函数中的变量。不过,可采用不同方式对变量的值进行保存: - **全局变量**:全局变量的作用域较大,在整个程序里都能使用。将变量定义成全局变量,在函数里使用时无需传参。 ```c #include <stdio.h> int global_variable; // 全局变量 void custom_function() { global_variable = 42; // 在自定义函数中修改全局变量的值 } int main() { custom_function(); printf("%d\n", global_variable); // 输出全局变量的值 return 0; } ``` - **静态变量**:在函数内部定义静态变量,它的生命周期是整个程序的运行期,函数结束时其值不会丢失。 ```c #include <stdio.h> void custom_function() { static int static_variable = 0; // 静态变量 static_variable++; printf("%d\n", static_variable); } int main() { custom_function(); // 第一次调用,输出1 custom_function(); // 第二次调用,输出2 return 0; } ``` - **动态内存分配**:使用`malloc`、`calloc`、`realloc`等函数在堆上分配内存,这些内存不会因函数结束而被释放。 ```c #include <stdio.h> #include <stdlib.h> int* custom_function() { int* dynamic_variable = (int*)malloc(sizeof(int)); // 动态分配内存 *dynamic_variable = 42; return dynamic_variable; } int main() { int* result = custom_function(); printf("%d\n", *result); free(result); // 释放动态分配的内存 return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值