2017-03-29 6 views
-3

Haben eine harte Zeit herauszufinden, warum ich ein erwartet ein ';' nach der Funktion parseString.Erwartete ein Doppelpunkt Fehler Probleme

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <ctype.h> 

typedef struct Integer50 
{ 
// a dynamically allocated array to hold a 50 
// digit integer, stored in reverse order 
int *digits; 
} Integer50; 

main() { 
    Integer50 * parseString(char * str) 
    { //error is on this colon 
     return NULL; 
    } 
} 
+0

Sie können keine Funktion in einer anderen Funktion haben. –

+0

Weil 'Integer50 * parseString (char * str)' eine Anweisung ist und eine Anweisung mit einem Semikolon enden muss? – David

+0

Wussten Sie vielleicht, dass der Prototyp im Wesentlichen der eigentliche Code der Funktion ist? – AntonH

Antwort

0

Sie können keine Funktionen in C verschachteln (Sie können sie jedoch in einem verschachtelten Bereich deklarieren).

Sie müssen sich bewegen:

Integer50 * parseString(char * str) 
{ //error is on this colon 
    return NULL; 
} 

in die Datei Umfang. Diese

1

:

main() { 
    Integer50 * parseString(char * str) 
    { //error is on this colon 
     return NULL; 
    } 
} 

ersetzt werden durch:

Integer50 * parseString(char * str) 
{ //error is on this colon 
    return NULL; 
} 

int main() { 
    //If you need to call that `parseString` function call it here 
} 

Von daher ist C nicht Funktion in Funktion unterstützen. main ist eine Funktion und parseString ist eine andere Funktion. Das ist das Problem.