带有“[])(char **)”的 C 数组
C array with "[ ]) (char **)"
我在 lsh 来源中找到以下声明:
int (*builtin_func[]) (char **) = {
&lsh_cd,
&lsh_help,
&lsh_exit
};
我对 C 比较陌生,但是 (*builtin_func[]) (char **)
看起来很奇怪。这是什么意思?
(我对声明更感兴趣,而不是代码的目的。)
int (*builtin_func[]) (char **)
表示变量builtin_func定义为
Incomplete array of pointers to functions that take pointer to pointer to char and return integers.
接下来,
= { &lsh_cd, &lsh_help, &lsh_exit };
初始化器列表将完成数组,使其由 3 个这样的指针组成——假设所有 3 个函数都遵循相似的签名。
我在 lsh 来源中找到以下声明:
int (*builtin_func[]) (char **) = {
&lsh_cd,
&lsh_help,
&lsh_exit
};
我对 C 比较陌生,但是 (*builtin_func[]) (char **)
看起来很奇怪。这是什么意思?
(我对声明更感兴趣,而不是代码的目的。)
int (*builtin_func[]) (char **)
表示变量builtin_func定义为
Incomplete array of pointers to functions that take pointer to pointer to char and return integers.
接下来,
= { &lsh_cd, &lsh_help, &lsh_exit };
初始化器列表将完成数组,使其由 3 个这样的指针组成——假设所有 3 个函数都遵循相似的签名。