Chinaunix首页 | 论坛 | 博客
  • 博客访问: 78277
  • 博文数量: 16
  • 博客积分: 750
  • 博客等级: 军士长
  • 技术积分: 216
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-10 13:22
文章存档

2012年(1)

2010年(15)

我的朋友

分类: C/C++

2010-01-16 21:27:25



如果问一个问题:
C语言支持对象吗?不知道你作何回答。其实C语言本身没有支持对象的机制,如果要用对象的思想来写程序就必须要做很多工作。
记得C++的发明者曾经用
C语言写过一个C++的编译器,那么从逻辑上讲C语言是可以支持对象的!

阅读
 kernel的时候,大家都会为其中大量的指针的使用而着迷或是糊涂,其实这些代码中包含了一些对象的思想。

现模拟一下,
对象的一个特性封装:

#include

typedef struct node1{
        int i;
        int (*setvalue)(int *i);
}test;

int setvalue_test(int *i)
{
        *i = 12;
        return 0;
}

int main(int agrc, char **argv)
{
        test test1;
        test1.setvalue = setvalue_test;
        test1.setvalue(&test1.i);

        printf("the result of test1.i: %d\n", test1.i);

        return 0;

此程序在Fedora 12 gcc version 4.4.2上调试通过。结果是:
$the result of test1.i: 12

阅读(736) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:一点一滴培养你的领袖气质 (转载)

给主人留下些什么吧!~~