typedef void (*api_unit)(char *); api_unit unit_tbl[] = { (api_unit)mmi_api_start, (api_unit)mmi_api_stop }; void mmi_api_start(char *ptr) {} void mmi_api_stop(char *ptr) { } 问题:mmi_api_start和mmi_api_stop这两个函数名称能被强制转化成api_unit吗?这么转化一般有什么目的呢?
[code]#include
在c语言中,指向函数的指针的使用,是不是必须加()呢?如: int fp(int i) { return i; } int main() { int (*f)(int)=&fp; printf("%d",(*f)(9)); } 如果写成:printf("%d",f(9));也可以正常运行,可是书上说使用和声明是一致的,必须有加号和*,到底是怎样呢?
[quote] 8 typedef void *log_funp_t(char *,int,int,int); 9 10 int open_log(const char *, int); 11 void close_log(int); 12 int write_log(int, int, int, log_funp_t *); 13 int check_log_length(int, int);[/quote] [quote] log.h:8: error: redefinition of typedef 'log_funp_t' log.h:8: error: previous declaration of 'log_funp_t' was here[/quote] [ 本帖最后由 wangqi0021 于 2009-4-2 15:38 编辑 ]
typedef void (*FUNC_T)(int i); void func( FUNC_T func ); void test(); main() { ... func( test ); ... } 请问这样的写法,编译能通过吗?
[code]#include
1.函数返回指针的疑问 就比如 readdir(); 返回一个指针变量。不明白的是,函数内部是怎么定义指针并分配内存的,可以保证函数返回后不会自动释放,并且不会产生泄露。 最好把readdir的函数源代码贴出来。 2.请问scandir的几个变量是否需要调用者手动free()?