QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1043|回复: 4

头文件里的函数冲突问题,谢谢解答。

[复制链接]
发表于 2005-11-10 18:17:23 | 显示全部楼层 |阅读模式
自己写了一个工具函数集“utils.h”,里面有一个函数“getline(...)”。
“getline(...)”需要用到“conio.h”里的“getch()”,而GCC没有这种函数和头文件。
从网上找到了一个Linux下可用的“getch()”,并把它放进了新的“uxconio.h”。

在一个名为“body2.cpp”的文件中,函数“create()”里,既需要调用“getch()”,也需要调用“getline(...)”。我在“body2.cpp”里做了如下定义:
[code:1]
#include <iostream.h>

#include "utils.h"
#include "uxconio.h"
[/code:1]
结果一编译就出错:
[code:1]
[typhoon@TFW-RFLD40B-NB ChainTableTestCpp]$ ./build
In file included from body2.cpp:5,
                 from share.h:1,
                 from main.cpp:3:
uxconio.h: In function `char getch()':
uxconio.h:37: redefinition of `char getch()'
uxconio.h:37: `char getch()' previously defined here
uxconio.h:37: redefinition of `char getch()'
uxconio.h:37: `char getch()' previously defined here
uxconio.h: In function `void putch(char)':
uxconio.h:70: redefinition of `void putch(char)'
uxconio.h:70: `void putch(char)' previously defined here
uxconio.h:70: redefinition of `void putch(char)'
uxconio.h:70: `void putch(char)' previously defined here
[typhoon@TFW-RFLD40B-NB ChainTableTestCpp]$
[/code:1]
我有什么办法同时使用这两个函数?
发表于 2005-11-10 20:27:46 | 显示全部楼层
uxconio.h是不是多次被包含?uxconio.h有没有做防止重复包含的判断。
回复

使用道具 举报

发表于 2005-11-11 12:42:05 | 显示全部楼层
[code:1]In file included from body2.cpp:5,
                 from share.h:1, [/code:1]
你在 shared.h 里面写 "#include "body2.cpp" 了?
回复

使用道具 举报

发表于 2005-11-11 16:37:48 | 显示全部楼层
楼上的很细心啊,呵呵
回复

使用道具 举报

发表于 2005-11-11 16:42:35 | 显示全部楼层
呵呵,主要是这个错误自己出过,得到怪异无比的错误,折腾了一个晚上,动用了 MSN 全部脑力资源没有找到头绪之后忽然发现,被所有 M 友集体 BS 之后……就开始产生敏感反应了……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 04:30 , Processed in 0.043849 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表