main()的多重定义

jee*_*ali 1 c program-entry-point multiple-definition-error

嗨伙计们试图使用两个main()并获得此错误多次定义main().我重命名了我的主要功能然后为什么是这个错误,并且首先在这里为我的print()定义.头文件:

#ifndef TOP_H_
#define TOP_H_

#include <stdio.h>
#include <string.h>
#define onemain main
#define twomain main
inline void print();


#endif /* TOP_H_ */
Run Code Online (Sandbox Code Playgroud)

c文件一:

#include "top.h"
void print();
int onemain()
{
    print();
    return 0;
}
void print()
{
printf("hello one");
}
Run Code Online (Sandbox Code Playgroud)

c文件二:

#include "top.h"
void print();
int twomain()
{
    print();
    return 0;
}
void print()
{
printf("hello two");
}
Run Code Online (Sandbox Code Playgroud)

错误快照

kur*_*eko 10

基本上任何C(甚至C++)程序都是一堆相互调用的函数.
要开始执行程序,您必须选择其中一个函数并首先调用它.
按照惯例,调用此初始函数main.

当您在项目中包含多个源文件时,IDE会将它们全部编译,然后调用链接器,该链接器会查找一个被调用的单个函数,main并生成一个可调用它的可执行文件.

如果由于任何原因,您在所有这些文件中定义了两个"主"函数,链接器将警告您它无法自行选择您打算作为程序起点的那个.