高分求解include c代码的头文件出错的问题

snaill 2006-03-27 09:00:47
在C++项目中添加了一段C的源码,当include C代码的头文件时,编译出错(如果不包含到C++代码中,本身.c文件的编译没有问题):

error C2332: “struct”: 缺少标记名
error C2872: “<unnamed-tag>”: 不明确的符号

出错位置的代码:
extern int version(int interface);

该函数定义没有任何的struct结构定义

那位碰到过相似的问题,提供以下解决的方法!!
...全文
256 17 打赏 收藏 举报
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
snaill 2006-03-27
呵呵,非常规的错误一定是非常规的问题,耐心细致很重要啊
  • 打赏
  • 举报
回复
lixiaosan 2006-03-27
lz经过此次事件,coding能力上升了不至一个档次。。
  • 打赏
  • 举报
回复
handsomerun 2006-03-27
你也弄个好点的变量名啊~~
  • 打赏
  • 举报
回复
rageliu 2006-03-27
楼上的有道理!果然目光如炬
  • 打赏
  • 举报
回复
lixiaosan 2006-03-27
hehe。。。。真是的。。
  • 打赏
  • 举报
回复
snaill 2006-03-27
呵呵,终年打雁这次让雁啄了眼,都是这样的问题

多谢hyamw(林锋),帮我开眼

多谢其他各位支持

谢谢
  • 打赏
  • 举报
回复
hyamw 2006-03-27
this在C++里面是关键字,不要用这个做变量名
  • 打赏
  • 举报
回复
snaill 2006-03-27
嘿嘿,不是分行的问题
  • 打赏
  • 举报
回复
lixiaosan 2006-03-27
弄在一行试试呗。。
  • 打赏
  • 举报
回复
snaill 2006-03-27
3楼目光如炬,上面说的问题没有了,但还有定义的问题

struct mspack_file * (*open)(struct mspack_system *this,
char *filename,
int mode);

说是缺少括号,这样的定义在c++中走不通?
  • 打赏
  • 举报
回复
hyamw 2006-03-27
我记得在VC6.0里面
interface被定义成了这样:
typedef struct interface;(忘了是在哪个头文件里面定义的了)

.NET里面这个好像是关键字 :)
  • 打赏
  • 举报
回复
一个傻冒 2006-03-27
C2872错误一般是因为使用了标准的头文件和非标准头文件才出的吧?
看看C和CPP包含头文件的时候,有没有用重的?比如#include <iostream.h>,#include <iostream>
  • 打赏
  • 举报
回复
snaill 2006-03-27
怀疑是C和C++定义交叉的问题,特别是extern造成编译器找不到正确的函数定义,但该头文件也包含

#ifdef __cplusplus
extern "C" {
#endif

应该没有这个问题啦,奇怪啊,哪位有啥可以试试的建议
  • 打赏
  • 举报
回复
lixiaosan 2006-03-27
楼上的有道理。。试试。。
  • 打赏
  • 举报
回复
hyamw 2006-03-27
不能用interface做变量名,换个名字
  • 打赏
  • 举报
回复
snaill 2006-03-27
应该不是头文件的问题,因为在.c文件中也有include,但编译就没有问题
  • 打赏
  • 举报
回复
lixiaosan 2006-03-27
头文件声明有误?
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC
加入

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
申请成为版主
帖子事件
创建了帖子
2006-03-27 09:00
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……