c - 两个不同函数指针的 typedef 有效吗?

标签 c

有人可以解释一下代码的确切含​​义吗?像这样执行 typedef 并在函数调用参数中使用“name”是否有效?

typedef uint8 (*Funcptr) (name);
typedef uint8 (*Funcptr1) (name);

typedef struct {
    Funcptr func;
    Funcptr1 func_1;
} a;

最佳答案

有指向函数的指针,返回一个uint8并在参数中获取名称(可能是其他类型定义,或者如果未定义则无效)

示例:

typedef char * name; /* added to be able to compile */

typedef uint8 (*Funcptr) (name);

uint8 foo(name s)
{
  return 0;
}

int main()
{
  Funcptr f = &foo;
  char bar[] = "bar";

  (*f)(bar);
}

关于c - 两个不同函数指针的 typedef 有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54442918/

相关文章:

c - 使用多个 NIC 广播 UDP 数据包

c - 从链表中删除选择的节点

c - 有没有办法为数组重新分配内存以允许在开头添加附加值?

c - malloc 调用的静态替换

python - 使用 Cython 从 header 导出常量

c - 为什么我的 Linux 应用程序每 0.5 秒停止一次?

c++ - 插入排序C实现

c - 将地址类型转换为函数指针

c - ncurses 的 printw() 不起作用

c - 我想计算字符串 C 程序中每个字母的频率或出现次数