错误 C2447:“{”:缺少函数头 -- 无法解决此错误,出了什么问题?

error C2447: '{' : missing function header -- Can't resolve this error, what's wrong?

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include "bcio2.h"
int error, x;
char totalimpulse[80], averageimpulse[80];
void validate_number();

int main(void)
{
    clrscr();
    do{
        printf("\nTotal Impulse delivered: ");
        gets(totalimpulse);
        validate_number();
    } while (error != 0);
    printf("You entry %d was valid\n", x);
    getch();
    return 0;
}

{   //error C2447
    clrscr();
    do{
        printf("\nAverage Impulse delivered: ");
        gets(averageimpulse);
        validate_number();
    } while (error != 0);
    printf("You entry %d was valid\n", x);
    getch();
    return 0;
}

括号匹配,似乎没有任何不必要的分号。我假设这是显示 input/validation 的正确方式。当 运行 仅使用 do…while(); 循环 totalimpulse 时它工作正常但是当我 copy/paste另一对 {} 之间完全相同,我只得到 C2447 错误。

现在你只有一段代码,在任何函数之外。

我从您的其余代码中假设,此代码块应该是 void validate_number(); 的定义,如下所示:

void validate_number()
{
    clrscr();
    do{
    // ...
    return 0;
}

请注意,void 函数不能 return 值,因此您的 return 0 应该被删除。

从错误所在处开始的代码不在 main 或任何其他与此相关的函数中。如果您删除错误行上的大括号和它前面的大括号,那么您的第二个循环也会在 main 旁边。如果您希望该部分成为不同的功能,则必须为该功能包含 header。你在 validate_number 顶部的内容只是一个承诺,你 在某处定义该函数(尽管如果你的意思是底部的那个部分是 validate_number,我很确定你不希望它是递归的)。