怎么不能在头文件里添加函数啊

viaxy 2006-12-13 10:32:45
我在作一个c++和C的混合程序。用的是VC6.0
怎么在c文件中添加新函数后,编译就有错误啊
...全文
184 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2006-12-13
  • 打赏
  • 举报
回复
extern "C"{ #include"myDecode.h"}这是恶习。不是所有东西都可以加extern "C"的。
viaxy 2006-12-13
  • 打赏
  • 举报
回复
我只是在myDecode.h文件中加了一个函数定义。然后在对应的myDecode.c文件里实现。
而在引用这个.h文件的类里面加了extern "C"{ #include"myDecode.h"}了。但是一编译就有问题了。
caojunliang 2006-12-13
  • 打赏
  • 举报
回复
在C语言中函数的名称保持原来名称,而C++中由于重载机制,在内部使用函数内部名称。
如果在C文件中定义的函数,要在C++中使用,在使用前的声明中必须加 extern "C",相反
在C++中定义的函数, 在C 文件中使用,声明前需要添加 extern "C++”
例如:
//file1.c
int func(int i)
{
return i+1;
}
//file2.cpp

extern "C"
{
int func(int i);
}

int func_1(int i)
{
return func(i);
}
zaxzab 2006-12-13
  • 打赏
  • 举报
回复
对啊 用extern
breakout 2006-12-13
  • 打赏
  • 举报
回复
学习
  • 打赏
  • 举报
回复
对编译器来说不一样c和cpp文件编译出来的函数名字不一样
viaxy 2006-12-13
  • 打赏
  • 举报
回复
已经加了extern "C"了
那为什么以前的一些函数就可以啊?
xuzheng318 2006-12-13
  • 打赏
  • 举报
回复
extern "C"加上
taodm 2006-12-13
  • 打赏
  • 举报
回复
贴代码。
一般是因为没有extern "C"
  • 打赏
  • 举报
回复
用 extern "C" 修饰C文件中对应的函数

65,210

社区成员

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

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