C语言 重新定义main



我开始用C写代码,我需要toupper函数在我的代码中,所以我添加到ctype.h头文件中来包含它。

突然我不能运行我的程序,因为我不断得到一个redefinition of main错误从我的编译器。

在我添加头文件ctype.h之前,即使我去掉头文件ctype.h,程序也可以运行。我该怎么做才能解决这个问题?

#include <stdio.h>
#include <ctype.h>
#define NAMESPACE 20
int main (void)
{  
    char first_name[NAMESPACE], middle_name[NAMESPACE], last_name[NAMESPACE];
    printf ("Please enter your first, middle and last name.n");
    scanf ("%s", first_name);
    scanf("%s", middle_name);
    scanf ("%s", last_name);
    printf ("%s %0.1s %s", first_name, middle_name, last_name);
    return 0;
}

[error] redefinition of "int main()":

下面是在我的DEV c++中保存为名为ctype.h的头文件的代码,

#include<stdio.h>
#include<conio.h>
int main (void)
{
char ch[]="I AM AN IDIOT.";
char c='A';
int i=0;
while(c)
{
c=getch();
printf("%ca",ch[i]);
i++;
if(i==14)
{
printf(" "); i=0;
}
}
}

您发布的代码没有解释您呈现的错误消息。它有一些问题,但不会引起任何错误。出现错误的原因可能有以下几种:

  1. 我最好的猜测是,您在项目中有另一个具有自己的main()函数的源文件,并且IDE被配置为在同一目标程序中包含这两个源文件。这可能仅仅是因为它们被放在同一个目录中。其他源文件甚至可能是一些愚蠢的东西,例如您提供的文件的备份副本。
  2. 或者,它可能是你有一个名为ctype.h的项目本地头文件,它定义了一个main()函数,而Dev c++选择了这个头文件而不是标准库的头文件。(是的,这实际上只是(1)的一个变体;在"重新定义'int main()'"中没有太多的余地。)
  3. 或者Dev c++说错了,它在抱怨main()的re声明而不是re定义。如果它的ctype.h头文件包含一个冲突的声明,比如int main(int argc, char *argv[]),那么它可能发出一个投诉。在这种不太可能的情况下,您可以通过将main()的声明更改为双参数形式来解决错误。

相关内容

  • 没有找到相关文章

最新更新