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并生成一个可调用它的可执行文件.
如果由于任何原因,您在所有这些文件中定义了两个"主"函数,链接器将警告您它无法自行选择您打算作为程序起点的那个.