我有以下函数原型(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
的指针、int
和 int
)并返回指向 char
的指针.
根据您的描述,scanleft
也不是函数;它是指向 char
的指针.
你问题中唯一的原型(prototype)是这样的:
char *, char *, char *, char *, int , int
... 这对我来说并不特别令人困惑。这是 6 个简单的参数。
关于c - 破译令人困惑的函数原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48085841/