c 中的 Typedef,当它需要 2 个参数时它是如何工作的
Typedef in c, how it works when it takes 2 arguments
任何人都可以向我解释一下这段代码是如何工作的吗?
typedef int (*compare)(const char*, const char*);
它是指向具有 return 类型 int
和两个 const char *
.
类型参数的函数的类型指针的别名声明
typedef int (*compare)(const char*, const char*);
使用别名你可以声明一个指针类型的变量,如下面的演示程序所示
#include <string.h>
#include <stdio.h>
typedef int (*compare)(const char*, const char*);
int main( void )
{
compare cmp = strcmp;
printf( "\"Hello\" == \"Hello\" is %s\n",
cmp( "Hello", "Hello" ) == 0 ? "true" : "false" );
}
其中 strcmp
是一个标准的 C 字符串函数,声明为
int strcmp(const char *s1, const char *s2);
并且指针(变量)cmp
由函数的地址初始化。
任何人都可以向我解释一下这段代码是如何工作的吗?
typedef int (*compare)(const char*, const char*);
它是指向具有 return 类型 int
和两个 const char *
.
typedef int (*compare)(const char*, const char*);
使用别名你可以声明一个指针类型的变量,如下面的演示程序所示
#include <string.h>
#include <stdio.h>
typedef int (*compare)(const char*, const char*);
int main( void )
{
compare cmp = strcmp;
printf( "\"Hello\" == \"Hello\" is %s\n",
cmp( "Hello", "Hello" ) == 0 ? "true" : "false" );
}
其中 strcmp
是一个标准的 C 字符串函数,声明为
int strcmp(const char *s1, const char *s2);
并且指针(变量)cmp
由函数的地址初始化。