Codejie's C++ Space

Using C++

求解:C语言如何进行前置声明



    如下列子:
typedef BOOL (*func)(const DefStruct* struct);

typedef 
struct DefStruct_t
{
    
int i;
    func f;
}
 DefStruct;

   如上定义了一个回调函数声明,然后在后面的struct中使用这个回调函数声明。这样交叉引用必然编译不过,在C++中,由于是使用struct的指针类型,进行前置声明即可,但C中该如何实现呢?

posted on 2009-11-19 16:01 codejie 阅读(2672) 评论(8)  编辑 收藏 引用 所属分类: C++

评论

# re: 求解:C语言如何进行前置声明 2009-11-19 17:25 OwnWaterloo

typedef struct DefStruct DefStruct;

typedef BOOL (*func)(const DefStruct* s);

struct DefStruct
{

int i;
func f;

};

这是tag在C和C++中的区别造成的问题。
更详细的,见这里:
http://www.embedded.com/9900748

  回复  更多评论   

# re: 求解:C语言如何进行前置声明 2009-11-19 17:40 codejie

@OwnWaterloo
果然是这样,你太强大了!!谢谢~~  回复  更多评论   

# re: 求解:C语言如何进行前置声明 2009-11-19 17:48 OwnWaterloo

@codejie
我也是看那篇文章才懂的……
值得看看,推荐~_~

  回复  更多评论   

# re: 求解:C语言如何进行前置声明[未登录] 2009-11-20 00:10 codejie

@OwnWaterloo
很好的文章。
C和C++,又相似,又不同,同时用这两个,真的让我恨晕。。。。  回复  更多评论   

# re: 求解:C语言如何进行前置声明 2009-11-20 00:18 OwnWaterloo

@codejie
因为我最近写的绝大部分是Clean C —— C和C++的子集。
所以对C和C++的区别比较注意。
还会同时拿到两种语言的编译器上去编译。


我的blog里面还有一些C/C++区别的文章。
因为学校要求写实习周记…… 我又不想随便写点应付交差……
所以就写了一些文章放到blog上, 然后再抄给学校交差……

所以那个月更新了不少…… 以后还会更新一些。

  回复  更多评论   

# re: 求解:C语言如何进行前置声明 2009-11-20 03:49 OwnWaterloo

这个,很全……
http://david.tribble.com/text/cdiffs.htm

  回复  更多评论   

# re: 求解:C语言如何进行前置声明 2009-11-20 09:49 codejie

@OwnWaterloo
详读~  回复  更多评论   

# re: 求解:C语言如何进行前置声明 2009-11-20 11:25 codejie

@OwnWaterloo
http://david.tribble.com/text/cdiffs.htm”使我更加了解了C和C++间的差异,很多是由各自的特性导致的,比如enum的差异。
好文,谢谢。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

Using C++

导航

统计

留言簿(73)

随笔分类(513)

积分与排名

最新评论

阅读排行榜

评论排行榜