先前搞Java,现转C,突然很想念OO,今天用C搞了下。
#include <stdio.h>
//模拟类
typedef struct man
{
char *name;
void sleep(int time)
{
printf("%s sleep for %d minutes.\n", this->name, time);
};
void (*laugh)(char *name, ...);
}MAN;
void laugh(char *name, ...);
void main(void)
{
MAN lili;
lili.name = "Lili";
lili.sleep(9);
lili.laugh = &laugh;
lili.laugh("Lucy", 4);
}
void laugh(char *name, ...)
{
va_list args;
args = (va_list)&name + sizeof(name);
printf("%s laugh for %d minutes!\n", name, (int)args[0]);
}
如果换成如下结构体,laugh函数参数换成全动态的。
typedef struct man
{
char *name;
void sleep(int time)
{
printf("%s sleep for %d minutes.\n", this->name, time);
};
void (*laugh)(...);
}MAN;
这函数要如何实现?
void laugh(...)
{
va_list args;
args = ???;//如何赋值?
printf("%s laugh for %d minutes!\n", (char*)args[0], (int)args[1]);
}
这函数里要如何取到那个args?
分享到:
相关推荐
在Windows2000环境下,创建一个控制台进程,此进程包含n个线程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件(后面介绍)的要求进行读写操作。用信号量机制分别实现读者优先和写者优先问题。...
用C语言模拟C++中的类,程序员面试时遇到的问题,代码简单,但足够说明问题
计算机一级c类操作模拟题
通过本系统的练习,你一定可以通过云南省一级C类考试的。本系统是针对云南省一级C类考试做的模拟软件,与国家级考试无关;本系统是C类(云南省一级考试分A、B、C、D、E五类)而不是C语言。
2014年高考地理 各地名校模拟分类汇编 C单元 地球上的大气
C语言模拟银行ATM自动取款机全过程的源代码,利用TXT存储用户信息,每个用户都会被存到user.txt文本中,另外系统生成4个文件(存款记录、取款记录、转账记录、余额)!实现存、娶转、查功能!对密码输入次数进行了...
IOS开发学习总结objectivec面向对象之——成员变量,模拟类变量,单例模式电脑资料.doc
起因:在c语言工程代码当中,常常要处理各种关于异常的处理,每次当程序比较复杂的时候,必须用好几个if来嵌套使用,比如 if (xxx) { if(xxx) { } else { return ERR_NO; } } 这样的代码显得非常混乱...
本篇文章主要介绍了C语言模拟实现C++的继承与多态示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本站以C语言和Java语言、嵌入式开发、算法实现为主,源码数量达几十万个,有200多个分类,很多都是本站会员的私家珍藏,互联网上其他地方是找不到的
二级c语言的模拟题练习,程序填空题,程序改错题,程序设计题。
单片机C语言程序设计 射击训练游戏(有源码)单片机C语言程序设计 射击训练游戏(有源码)单片机C语言程序设计 射击训练游戏(有源码)单片机C语言程序设计 射击训练游戏(有源码)单片机C语言程序设计 射击训练游戏(有...
可以很好的练习c,有笔试和机试两个系统,每道题带有详细的注释,带有错题库之类的,总之能够很好的让你复习c级c
Javascipt语法不支持”类”(class)[es6已经支持],但是有模拟类的方法。今天我主要谈谈Javascipt中模拟“类”的方法及js中继承的总结和回顾。 js中实现“类”与继承,既是重点,又是难点。很多同学可能都对js中...
附件2.一级C类模拟考试系统(高职高专)(win7 office2010).rar
...
(2) 假定系统中有五个进程{P0,P1,P2,P3,P4}和三类资源{A,B,C},各类资源的数量分别为10、5、7,在T0时刻的资源分配情况如下表: Max A B C Allocation A B C Need A B C Available A B C P0 7 5 3 0 1 0 7 4 3 3 ...
这是c语言类的试题,非常经典,这几年收录的,大家可以看看,好像是一个竞赛的模拟题
C复杂程序部分模拟题.doc C语言 技术支持题目.doc IEEE 关于软件代码异常的标准分类.doc 编程规范和范例.doc 高质量C++编程指南.pdf 软件编程规范培训实例与练习.doc 软件开发流程.jpg 软件开发流程.txt 程序员应...
本文小编带大家一起学习的是在 JavaScript 中使用构造器函数(construcor function)模拟类。下面话不多说,感兴趣的朋友们下面来一起看看吧。 构造器函数简介 你可以使用 ES6 的 class 关键字来实现类,不过我建议...