Вы не можете использовать typedef для определения функции.
Введите вашу структуру сначала как
typedef struct
{
int dice1;
int dice2;
} diceData;
Затем объявите вашу функцию как
diceData RollDice()
{
diceData diceRoll;
diceRoll.dice1 = 0;
diceRoll.dice2 = 0;
return diceRoll;
}
Это объявляет RollDice как функцию, которая возвращает структуру diceData.
Альтернативный способ попытаться вернуть два значения - использовать параметры.
В этом случае ваша функция будет возвращать логическое значение (для указания успеха или неудачи) и принимать два указателя на целые числа в качестве параметров. Внутри функции вы должны заполнить содержимое указателей, например:
bool_t rollDice(int *pDice1, int *pDice2)
{
if (pDice1 && pDice2)
{
*pDice1 = 0;
*pDice2 = 0;
return TRUE;
}
else
{
return FALSE;
}
}
int main(int argc, char **argv)
{
int a, b;
rollDice(&a, &b);
return 0;
}