首页 > 解决方案 > 如何在 ac 函数中返回通用指针?

问题描述

我见过这种语法:

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;

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

标签: cpointers

解决方案


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

至于返回 a void*没有返回类型是 false

voidvoid*不同的

这个符号可以像其他方式一样使用:

无效*方法=工作;

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

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

我鼓励您询问高级别的警告/错误,例如如果您使用gcc do gcc -pedantic -Wextra


推荐阅读