很难弄清楚为什么我会得到预期的';'在函数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 :(得分: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;
}
到文件范围。