Compilerfout “waarde ongeldig niet genegeerd zoals het hoort” in C-programmering

Ik kreeg die fout die ik niet kan achterhalen. Ik bekijk gerelateerde vragen, maar ik geef er geen betekenis aan dat iemand me laat zien welk onderdeel ik moet repareren?

[Fout] ongeldige waarde niet genegeerd zoals het hoort

Mijn codes

void getEdge(char str[],char *token){
    *token = strtok(str, "_,");
    while (token != NULL )
    {
      //  printf("%s\n", token);
        token = strtok(NULL, "_,");
    }
}
void getEdge(char str[],char *token);
int main () {
    char arr[] = "A_B_10,A_F_6,B_C_6,C_B_10,D_A_3";
    char *toke;
    char result;
    result = getEdge(arr,toke);
    printf("%s\n",result);
}

Antwoord 1, autoriteit 100%

Controleer deze regel

result = getEdge(arr,toke);

je probeert de retourwaarde vast te leggen van een functie waarvoor het retourtype voidis.

Onthoud, voidis een onvolledig type, en het is niet compatibel met enig ander type (in dit geval is LHS char), vandaar dat de compiler terecht klaagt.

Dat gezegd hebbende,

*token = strtok(str, "_,");

binnen de functie ziet er ook niet erg correct uit. Bekijk de soorten daar.


Antwoord 2, autoriteit 11%

Hier declareert u een functie zonder retourwaarde:

void getEdge(char str[],char *token)

En hier werk je met een functie die een char-waarde retourneert

char result;
result = getEdge(arr,toke);

Dus een oplossing zou kunnen zijn om uw functie in te wijzigen in:

char getEdge(char str[],char *token)
{
    ......
    return char_value;
}

Other episodes