2014-10-27 84 views
2

嗨请浏览我得到的所有相同的错误,但我没有得到解决我的问题,所以I am using MS VC++ 2010和我有两个文件a.c and b.c,每一个单独工作没有错误,每一个有一个简单的代码和清晰。但是当我用它们来收集显示这个错误**error LNK2005: _main already defined in a.c **这个相同的错误显示在代码块IED上。我认为这是指使用主要功能两次。现在,我该如何使用一个主功能两个文件错误LNK2005:_main已定义在hold.obj

代码文件交流

#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(); 
} 

代码文件BC

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

main() 
{ 
    int x=10; 

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

你可以请你的代码为a.c和b.c?它没有任何意义。另外,如果使用2个主要函数是问题,请创建'exec_main.c'文件并将主函数放在那里。 – ha9u63ar 2014-10-27 08:45:32

+2

'现在我怎样才能为这两个文件使用一个主函数'定义一个'main'函数。 – user657267 2014-10-27 08:45:32

+0

@ user657267正确!另外,你知道所有东西都从一个主线程运行,所以你不能有两个。 – ha9u63ar 2014-10-27 08:46:29

回答

5

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

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(); 
} 

注意,这是很好的做法,carfully名功能,使的名字描述他们做什么。例如,在这个例子中,你可能会调用a_main PrintIs7OrNot和b_main Print10。

+0

非常感谢,它的工作,所以如果我有很多文件呢? – Basil 2014-10-27 09:12:23

+0

@Basil - 多少?你需要在一个程序中使用所有这些主要功能,还是每个程序都可以使用它们?你可以继续:c_main,d_main,e_main等 – 2014-10-27 09:23:17

+0

真的非常感谢斯科特和请我想问你,现在认为主要活动文件是ac正在运行它的代码,所以我如何让bc活动来运行它的代码? – Basil 2014-10-27 09:30:13