预计结肠错误问题

时间:2017-03-29 18:03:19

标签: c

很难弄清楚为什么我会得到预期的';'在函数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;
    }
}

2 个答案:

答案 0 :(得分: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是另一个函数。这就是问题所在。

答案 1 :(得分:0)

您不能在C中嵌套函数(尽管您可以在嵌套范围内声明它们)。

你需要搬家:

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

到文件范围。