Как вернуть указатели общего назначения в функции переменного тока? - PullRequest
0 голосов
/ 23 февраля 2019

Я видел такой синтаксис:

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 голосов
/ 23 февраля 2019
void *job(void *arg){
   //does something, no return type
}

как вернуть void*, нет типа возврата ложно

void и void* и разные

Эта нотация может использоваться как-то иначе:

void * method = job;

это неправильный способ, если вы хотите сказать, что вы сохраняетеуказатель на функцию job , должен быть void *(*method)(void) = job;

void *method = *job; неверен, если вы используете опцию -pedantic, у вас будет ошибка ISO C forbids initialization between function pointer and ‘void *’ [-Wpedantic]

Я рекомендую вам запросить высокий уровень предупреждения / ошибки, если вы используете gcc do gcc -pedantic -Wextra , например

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...