2017-03-29 7 views
-3

なぜ私が期待した理由が分かりにくいのですか ';'関数parseStringの後にコロンのエラーが発生すると予想される

#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

他の関数の中に関数を持つことはできません。 –

+0

'Integer50 * parseString(char * str)'はステートメントであり、ステートメントはセミコロンで終わらなければならないのでしょうか? – David

+0

関数の実際のコードではなく、プロトタイプをメインに持つことを意味するのでしょうか? – AntonH

答えて

0

Cで関数をネストすることはできません(入れ子スコープ内で宣言できます)。

あなたが移動する必要があります。

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

ファイルスコープに。

1

この:

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

を置き換えてください:だから

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

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

、Cは、関数の内部機能をサポートしていません。 mainは関数であり、parseStringは別の関数です。それが問題です。

関連する問題