|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 qwe6620690 于 2019-5-10 14:35 编辑
- /*c1.h*/
- #include<string.h>
- #include<ctype.h>
- #include<malloc.h> /*malloc()等*/
- #include<limits.h> /*INT_MAX等*/
- #include<stdio.h> /*EOF(= ^Z或F6),NULL*/
- #include<stdlib.h> /*atoi()*/
- #include<io.h> /*eof()*/
- #include<math.h> /*floor(),ceil(),abs()*/
- #include<process.h> /*exit()*/
- /* 函数结果状态代码 */
- #define TRUE 1
- #define FALSE 0
- #define OK 1
- #define ERROR 0
- #define INFEASIBLE -1
- //#define OVERFLOW -2
- typedef int Status; /*Status是函数的类型,其值是函数结果状态代码*/
- typedef int Boolean; /*Boolean是布尔类型,其值是TRUE或FALSE*/
复制代码
- //c1-1.h
- /*动态分配的顺序存储结构*/
- typedef ElemType *Triplet; /*由InttTriplet分配3个元素存储空间*/
- /*Triplet类型是ElemType类型的指针,存放ElemType类型的地址*/
复制代码
- //bo1-1.c -base operation file
- #include"c1.h"
- typedef int ElemType;
- #include"c1-1.h"
- /*基本操作的实现*/
- Status InitTriplet(Triplet *T, ElemType v1, ElemType v2, ElemType v3)
- {
- if (!(*T = (ElemType *)malloc(3 * sizeof(ElemType))))
- exit(OVERFLOW);
- (*T)[0] = v1, (*T)[1] = v2, (*T)[2] = v3;
- return OK;
- }
复制代码
- //main.c -test function main file
- #include"bo1-1.c"
- int main(void)
- {
- Triplet T = NULL;
- ElemType m = 0;
- Status i;
- i = InitTriplet(&T, 7, 8, 9);
- printf("%d\n", i);
- system("pause");
- return 0;
- }
复制代码
- 输出结果:
- 1>bo1-1.c
- 1>main1-1.c
- 1>正在生成代码...
- 1>main1-1.obj : error LNK2005: _InitTriplet 已经在 bo1-1.obj 中定义
- 1>E:\source code\data structure and algorithm\source code\CH1\Debug\CH1.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
- 1>已完成生成项目“CH1.vcxproj”的操作 - 失败。
- ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
复制代码
上面四个文件合一个文件正常编译,分开为什么出现重定义错误? 先谢过各位了! |
|