错误LNK2005:_main已在hold.obj中定义

时间:2014-10-27 08:42:39

标签: c++ c visual-c++

您好我已经浏览了所有相同的错误,但我没有解决我的问题,所以I am using MS VC++ 2010我有两个文件a.c and b.c,每个文件都没有错误,每个文件都有一个错误简单的代码和清晰。但是,当我使用它们来收集显示此错误**error LNK2005: _main already defined in a.c **时,代码块IED上会显示相同的错误。我认为这是指两次使用main函数。现在我如何为两个文件

使用一个主要功能

代码文件a.c

#include<stdio.h>
#include<conio.h>

main()
{
    int a =9;
    if(a==7)
    {
        puts("This is number seven ");
    }
    else
    {
        puts("This isn't number seven ");
    }

    getch();
}

代码文件b.c

#include<stdio.h>
#include<conio.h>

main()
{
    int x=10;

    printf("%d", x);
    getch();
}    

1 个答案:

答案 0 :(得分:8)

不可能有两个主要功能,一个程序仅在一个主要功能中开始运行。您可以重命名主函数,并创建一个调用它们的主函数。

Code file a.c

#include <stdio.h>
#include <conio.h>

void a_main()
{
    int a =9;
    if(a==7)
    {
        puts("This is number seven ");
    }
    else
    {
        puts("This isn't number seven ");
    }


    getch();
}

代码文件b.c

#include <stdio.h>
#include <conio.h>

void main()
{
   a_main();
   b_main();
}

void b_main()
{
    int x=10;

    printf("%d", x);
    getch();
}

请注意,优良作法是仔细命名函数,以便名称描述它们的作用。例如,在此示例中,您可以调用a_main PrintIs7OrNot和b_main Print10。