主题:[讨论]C预编译的重复定义问题,新手求指导
我想实现程序分类定义,一个C文件全部用来定义数据类型,一个用来定义函数,一个主程序:
三个文件预编译头如下:
"Data_Define.c"
#ifndef DATA_DEFINE_H
#define DATA_DEFINE_H
int i,j;
int Data_Int,Data_Address;
char Data_Char;
float Data_Float;
char *Data_String;
.......
#endif
------------------------
"F_Define.c"
#ifndef F_DEFINE_H
#define F_DEFINE_H
#include "Data_Define.c"
#include "stdio.h"
int F_Data_Deal()
{
printf("数据的处理示例函数\n");
.......
#endif
----------------------------------
"Test_Main.c"
#include<stdio.h>
#include"Data_Define.c"
#include"F_Define.c"
int main()
{
.......
三个文件编译都没问题,链接运行的时候出错:
Test_Main.obj : error LNK2005: _F_Data_Deal 已经在 F_Define.obj 中定义
什么原因呢?[em10][em10]
三个文件预编译头如下:
"Data_Define.c"
#ifndef DATA_DEFINE_H
#define DATA_DEFINE_H
int i,j;
int Data_Int,Data_Address;
char Data_Char;
float Data_Float;
char *Data_String;
.......
#endif
------------------------
"F_Define.c"
#ifndef F_DEFINE_H
#define F_DEFINE_H
#include "Data_Define.c"
#include "stdio.h"
int F_Data_Deal()
{
printf("数据的处理示例函数\n");
.......
#endif
----------------------------------
"Test_Main.c"
#include<stdio.h>
#include"Data_Define.c"
#include"F_Define.c"
int main()
{
.......
三个文件编译都没问题,链接运行的时候出错:
Test_Main.obj : error LNK2005: _F_Data_Deal 已经在 F_Define.obj 中定义
什么原因呢?[em10][em10]