任何人都可以建议我下面的代码行代表什么?
static int(*pfcn[2]) (char *, ...) = { (void *)printf, (void *)NULL };
chux - Reins.. 5
Cgibberish↔英语是一个很好的网站,有助于解释声明
// declare pfcn as array 2 of pointer to function (pointer to char, ...) returning int int(*pfcn[2]) (char *, ...)
{ (void *)printf, (void *)NULL };
使用该函数初始化此数组,printf()
然后NULL
,可能指示结束.
int printf(const char *format, ...) NULL
这static
意味着数组是本地的,只能访问它所在的函数/ C文件.
@Lundin建议编译得好.
// { printf, (void *) NULL }; { printf, NULL };
国际海事组织,也应该是宣言
// const added static int(*pfcn[2]) (const char *, ...) = { printf, NULL };
注意:某些C可能不允许将a NULL
转换为函数指针.在那种情况下代码可以使用
static int printf_null(const char *format, ...) { return 0; } static int(*pfcn[2]) (const char *, ...) = { printf, printf_null };
...而且要反对 printf_null
而不是NULL
检测结束.避免演员阵容是一件好事.
Cgibberish↔英语是一个很好的网站,有助于解释声明
// declare pfcn as array 2 of pointer to function (pointer to char, ...) returning int int(*pfcn[2]) (char *, ...)
{ (void *)printf, (void *)NULL };
使用该函数初始化此数组,printf()
然后NULL
,可能指示结束.
int printf(const char *format, ...) NULL
这static
意味着数组是本地的,只能访问它所在的函数/ C文件.
@Lundin建议编译得好.
// { printf, (void *) NULL }; { printf, NULL };
国际海事组织,也应该是宣言
// const added static int(*pfcn[2]) (const char *, ...) = { printf, NULL };
注意:某些C可能不允许将a NULL
转换为函数指针.在那种情况下代码可以使用
static int printf_null(const char *format, ...) { return 0; } static int(*pfcn[2]) (const char *, ...) = { printf, printf_null };
...而且要反对 printf_null
而不是NULL
检测结束.避免演员阵容是一件好事.