C - 此处首先定义的主的多重定义



我是编程新手,目前正在学习C编程。我正在使用GCC编译器在代码块上编写代码。当我创建一个新项目时(如您所知,它使用它创建了main.c文件),因此我无法在该项目中编译另一个文件。

文件 1:

 #include<stdio.h>
int main()
{
    int a,b,c,d;
    printf("Enter three numbersn");
    scanf("%d%d%d",&a,&b,&c);
    d=a;
    if(b>d)
        d=b;
    if(c>d)
        d=c;
    printf("n The maximum of three numbers is %d",d);
}

文件 2: main.c

#include <stdio.h>
int main()
{
    printf("Hello world!n");
    return 0;
}

当我编译第一个程序时,它显示以下错误:"主要"的多重定义首先在这里定义

我已经搜索了所有可能的地方,但我无法解决这个问题。在堆栈溢出的一个答案中,有人建议将其写在(项目->生成选项...->链接器设置(选项卡))

-Wl,--allow-multiple-definition

当我写它时,没有错误。但它无法运行我的文件 1,而是运行该 main.c 文件。即使我关闭main.c文件,它也会再次打开并运行main.c文件,该文件给出输出"Hello World!

最初,当我使用代码块时,没有这样的错误。我不知道为什么会发生这种情况,我对编译器也知之甚少。

如注释中所述,您只能有一个主函数。

因此,当您启动一个新项目时,您需要将 main.c 文件替换为要使用的 main.c 文件。或者您可以编辑"hello world"main.c程序。

当你在code::blocks中启动一个新项目时,你可以用一个简单的程序来获取一个新目录,该程序打印"Hello World"。此文件通常是 main.c。您需要编辑或替换此文件。code::blocks将这个简单的main.c程序放在新项目中的原因是,您可以编译它并测试您的系统,而无需编写新程序。

一些计算机语言允许您对不同的函数使用相同的函数名称(由它们的参数标识,有时返回类型)。 这就是所谓的重载。 C 不允许这样做。 C 中的函数必须具有唯一的名称。

main()函数在 C 语言中是一个特殊的函数,因为它用作应用程序的标准入口点。 也就是说,将首先调用 main() 函数,应用程序应在该函数中开始和(通常)结束。

作为初学者,我建议您避免使用为您创建和构建项目的自动编辑器功能。 您将错过学习事情如何运作的机会。 使用编辑器从空文件开始,了解它们如何连接以及如何从命令行使用编译器。 命令行是每个初学者都应该从IMO开始的。

它可能更难学习,但它会让你对正在发生的事情有更好的感觉。

我想您可能要做的是拥有多个沙盒"要点",您可能希望将其全部作为自己的主要功能运行。 如果是这种情况,则只需关闭项目并直接打开文件即可。 只要它们不在项目中,它们就会运行良好。

相关内容

  • 没有找到相关文章

最新更新