如何在c函数中返回通用指针?

时间:2019-02-23 12:41:45

标签: c pointers

我见过这种语法:

void *job(void *arg){
   //does something, no return type
}

此表示法可以像其他方式一样使用:

void *method = job;

所以看来您可以使用这种表示法更快地编写如下内容:

void job(void *arg){ //no pointer here
   //does something, no return type
}
...
void *method = *job;

但是,我想知道如何表达一个方法实际上应该返回通用指针? 我在这里想念什么?

1 个答案:

答案 0 :(得分:1)

void *job(void *arg){
   //does something, no return type
}

要返回void*不返回类型为假

voidvoid*以及其他

  

此表示法可以像其他方式一样使用:

     

无效*方法=工作;

这不是正确的方法,如果您想说要保存指向函数 job 的指针,必须为void *(*method)(void) = job;

void *method = *job;是错误的,如果使用选项-pedantic,则会出现错误ISO C forbids initialization between function pointer and ‘void *’ [-Wpedantic]

如果您使用 gcc gcc -pedantic -Wextra ,我鼓励您要求高级别的警告/错误