'main'声明为返回函数的函数

时间:2014-02-02 06:48:49

标签: c function main

上周在这里问了一个关于有两个main()的问题。昨晚试了一下并得到了这个错误。请看一下。 我的头文件(top.h):

#ifndef TOP_H_
#define TOP_H_
#include <stdio.h>
#include <string.h>
#define onemain main()
#define twomain main()
void print();
#endif /* TOP_H_ */

c源文件一(one.c):

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

c源文件二(two.c):

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

My error and warnings screenshot

谢谢你们!

1 个答案:

答案 0 :(得分:2)

#define onemain main()
int onemain()

这将预处理为:

int main()()

你需要丢掉一对parens。