c - 破译令人困惑的函数原型(prototype)

标签 c

我有以下函数原型(prototype):

char *(*scan)(char *, char *, char *, char *, int , int);

scanleft() 是一个函数,类型为 static char *。

当我尝试编译时,我发现 scan 和 scanleft 之间存在指针类型不匹配。

if ((subtype & 1) ^ zero) scan = scanleft; else scan = scanright;

scan()的原型(prototype)是什么意思?

最佳答案

scan不是函数;它没有原型(prototype)。

scan是一个指向函数的指针(获取指向 char 的指针、指向 char 的指针、指向 char 的指针、指向 char 的指针、intint )并返回指向 char 的指针.

根据您的描述,scanleft也不是函数;它是指向 char 的指针.


你问题中唯一的原型(prototype)是这样的:

char *, char *, char *, char *, int , int

... 这对我来说并不特别令人困惑。这是 6 个简单的参数。

关于c - 破译令人困惑的函数原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48085841/

相关文章:

c - 在 UNIX 中做定时器的最佳方式

c++ - 计算代码的触发器!

c - C 中文件 I/O 的问题

c - 编辑 .desktop 文件以 root 身份运行可执行文件?

android - 双模块定义错误

c - 如何正确从 txt 文件中读取位串,以便计算所有字符串组合的汉明距离

c - 是否有更简单、更少机器级的表达方式或与 (i & (1 << j)) 相同的方式?

c - 在 C 中使用指针提取数组的一部分

c - 使用 read 读取时出现段错误

c++ - C/C++ 别名函数到具有不同参数的其他函数