首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

typedef void (*spi_t)(uint32_t *data);解决方法

2014-01-14 
typedef void (*spi_t)(uint32_t *data)typedef void (*spi_t)(uint32_t *data)请大师们帮我分析下这个

typedef void (*spi_t)(uint32_t *data);
typedef void (*spi_t)(uint32_t *data);
请大师们帮我分析下这个句子,包括定义了什么样的函数同时这个函数在调用的时候如何使用,就是后面定义了一个data指针,我要怎么传递参数
[解决办法]


typedef void (*spi_t)(uint32_t *data);
//定义的是一个返回值为void, 参数为uint32_t *的函数指针

void spi_tFunc(uint32_t *data)
{
printf("%d\n", *data);
}
int main()
{
spi_t F1 = NULL;
F1 = spi_tFunc;
uint32_t l1 = 6;
F1(&l1);


return 0;
}

[解决办法]
这个相当于定义了一个指向函数的指针spi_t类型,指向的函数原型是
void 函数名(unit32_t *data)

用法,比如下面的程序:


#include <stdio.h>

typedef void (*spi_t)(unsigned int *data);

void func(unsigned int * pParam)
{
printf("Call func, param = %d\r\n", *pParam);
}


void main(void)
{
unsigned int a = 123;
spi_t f = func;

    if(f)
{
f(&a);
}
}

热点排行