C与C++区别之 "..."与void

ma100 2003-08-04 01:04:55
各位高手,
我在C下编的函数,在将原文件更名为C++后报2个错,
如:void interrupt (far *Old101Key)(void)

一是连接不过去,告诉我不能将...与void类型转换,
二是提示"old101key"没有定义,而不是"Old101Key"

将函数变为void interrupt (far *Old101Key)(...)后就一切正常了,这是为什么呀

编译器bc++3.1
...全文
39 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
njtu 2003-08-04
  • 打赏
  • 举报
回复
可能是函数的版本问题:

不过对下面函数的定义不大理解:
void interrupt (far *Old101Key)(void)

对far * 用的比较少!

rivershan 2003-08-04
  • 打赏
  • 举报
回复
没看懂
njuhuangmy 2003-08-04
  • 打赏
  • 举报
回复
第二个 错误 ,定然 是 你在 变量列表里 申明了 Old...

但是,你在 程序体 里 使用了 old....

在 c 里 是 大小写 不区分 的

关于 第一个 ,没看懂

呜呜
cxjddd 2003-08-04
  • 打赏
  • 举报
回复
有这样定义的吗?不知道是定义interrupt还是Old101Key。
ma100 2003-08-04
  • 打赏
  • 举报
回复
setvect(INTERRUPT_KEY , Old101Key);
setvect(INTERRUPT_AD , OldAdInterrupt);
setvect(INTERRUPT_RS2 , OldRs2Key);
setvect(INTERRUPT_KEY, New101Key);
setvect(INTERRUPT_AD , AdSample);
setvect(INTERRUPT_RS2, newrs2key);
//以上函数错误都相同,现将其中一个函数定义如下
//在函数定义中,我也是用大写的
//如下连接可通过,若将...换了void就不行了
//另外编译是通过的,连接不过所以没有错误行号
void interrupt far New101Key(...)
{
unsigned key ;

disable();
key = inportb(0x60);
if (key<=0x81) NewKey=key; if(key==0x81)
{
System_Exit=1;
}
key = inportb(0x61);
outportb( 0x61 , key );
outportb( 0x20 , 0x20 ) ;
enable();
}
antijpn 2003-08-04
  • 打赏
  • 举报
回复
villager(为什么我这么绝顶聪明 却还是菜鸟?)
你在说什么?

给出old101key没有定义应该不是错在函数声明里面,而是在函数定义里面,你好好查一查(BC++不会不给错误行的行号吧?不要告诉我你不知道),把那个地方修改一下就行了

另外不知道你的什么void类型转换到底怎么回事,把代码贴出来看一下
leeseon 2003-08-04
  • 打赏
  • 举报
回复
??
villager 2003-08-04
  • 打赏
  • 举报
回复
都说是VOID了你还搞一个返回值,当然出问题了

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧