2014-02-17 2 views
0

Я новичок как в функциях void * так и в структурах. Я получаю эту ошибку:Передача в structs в функцию void с аргументами типа void

ошибка: конфликтующие типы для «» aperiodic_task

Это прототип функции:

void *aperiodic_task(void* arg) 

Я могу в принципе передать то, что я хочу, до тех пор, как я бросить, правильно?

Когда я вызываю функцию, я делаю следующее:

aperiodic_task(&acontents); 

"acontents" является установка структура I провести несколько различных переменных.

Я думал о аргументах типа void, которые я мог бы передать в любом случае. Мне, наверное, не хватает чего-то основного здесь, это был долгий день.

ответ

4

Да, вы можете передать любой указатель в аргумент void *. Ваша ошибка конфликтующие типы для 'aperiodic_task' указывает, что компилятор видел два определения aperiodic_task, которые не имеют ничего общего с аргументами, которые вы передаете, когда пытаетесь его вызвать. У вас либо есть противоречивый прототип, либо вы его вообще не прототипировали.

+0

yep ... получается, я пытался использовать функцию, прежде чем я ее определил. Какая глупая ошибка. Спасибо, что указали это. – user3287789

+0

@ user3287789 Если это была проблема, попробуйте выбрать ее в качестве ответа. – rationalcoder

Смежные вопросы