C语言中 多个源文件之间函数如何调用问题
主函数3.c
#include<stdio.h>
#include<malloc.h>
struct add *wwe();
struct add
{
int xuehao;
};
main()
{
struct add *p1;
wwe();
}
被调函数332.c
#include <stdio.h>
#include<malloc.h>
struct add *wwe()
{
extern struct add *p1;
p1=(extern struct add *)malloc(sizeof(extern struct add));
}
为什么会出现这样的错误呢?
332.c
C:\Program Files\Microsoft Visual Studio\MyProjects\123\332.c(6) : error C2027: use of undefined type 'add'
C:\Program Files\Microsoft Visual Studio\MyProjects\123\332.c(3) : see declaration of 'add'
执行 cl.exe 时出错.
为什么还会出现这样的东西呢
332.obj : error LNK2005: _main already defined in 321.obj
Debug/3.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.
你可不可以帮我把它改一下呢
新一个文件叫"common.h",里央写入下面内容
#ifndef __COMMON_H__
#define __COMMON_H__
struct add *wwe();
struct add
{
int xuehao;
};
#endif
把3.c里面的删掉,然后加入#include "common.h"
332.c也加入#include "common.h"
extern 是对变量的。删掉。
就应该没问题了,一个使用规则就是,在使用之间要先声明。