先前搞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?
分享到:
相关推荐
通过模拟试题的练习,学生可以加深对这些概念的理解,提高编程能力,为未来更复杂的编程挑战打下坚实的基础。在解答试题时,不仅要关注正确性,还要注重代码的清晰性和可读性,这是优秀程序员的基本素养。同时,不断...
以下将详细介绍如何用C语言模拟C++的封装、继承和多态。 1. 封装: C++中的封装是通过类(class)来实现的,它将数据和操作数据的方法绑定在一起,形成一个独立的单元。在C语言中,我们可以通过结构体(struct)来...
标题中的“二级C语言模拟软件”指的是用于准备计算机等级考试二级C语言部分的模拟测试工具。这类软件通常包含了大量模拟试题,旨在帮助用户熟悉考试格式,提高编程技能和应试能力。 描述中提到的“可随机抽题重复抽...
全国计算机二级C语言模拟试题是针对准备参加计算机二级考试,特别是C语言部分的考生们的重要学习资源。这类试题集通常包含了大量的练习题和模拟试卷,旨在帮助考生熟悉考试的题型、难度和时间安排,提高他们的应试...
通过以上这些知识点的结合,我们可以构建出一个完整的C语言模拟三人发牌程序,这不仅能提升我们的编程技能,还能加深对C语言基础概念的理解。在实践中,我们还可以进一步优化代码,比如引入面向对象编程的思想,创建...
【标题】"C语言上机模拟系统"是一个针对南开大学二级计算机考试的上机实践环节设计的模拟平台。这个模拟系统旨在帮助学生熟悉并掌握C语言编程的基本技能,提高他们在实际考试中的应对能力。 【描述】提到的“南开...
在了解这个模拟系统前,我们需要明确一点:它并不是关于C语言编程的学习资源,而是针对云南省一级C类考试的特定知识领域。云南省一级C类考试可能包括计算机基础知识、操作系统的使用、网络基础、办公软件的应用等...
《C语言模拟遗传算法模拟TSP问题》 遗传算法(Genetic Algorithm, GA)是一种受生物进化论启发的全局优化算法,它通过模拟自然选择、遗传、变异等过程来搜索最优解。在本文中,我们将深入探讨如何使用C语言实现遗传...
【二级C语言模拟软件】 C语言作为一门基础的编程语言,是全国计算机等级考试(National Computer Rank Examination,简称NCRE)的重要科目之一。对于备考二级C语言的考生来说,掌握扎实的理论知识和实践能力至关...
【标题】"二级C语言上机考试模拟盘(2001)" 提供的是一个针对计算机等级考试,特别是二级C语言考试的上机模拟环境。这个模拟盘旨在帮助考生熟悉考试流程,提升对C语言编程的实际操作能力。通过模拟真实考试环境,考生...
【标题】"国二C语言模拟软件 未来教育"指的是国家二级计算机考试中针对C语言的模拟测试软件,由未来教育机构开发。这类软件通常包含了大量模拟试题,旨在帮助考生熟悉C语言考试的题型、考试环境以及提高解题能力。 ...
在Windows2000环境下,创建一个控制台进程,此进程包含n个线程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件(后面介绍)的要求进行读写操作。用信号量机制分别实现读者优先和写者优先问题。...
计算机一级c类操作模拟题
【标题】:“C语言模拟快打旋风游戏源码”是指使用C编程语言实现的一款游戏,它基于经典街机游戏“快打旋风”的玩法进行模拟。C语言是一种底层、通用的编程语言,以其高效、灵活和直接内存操作等特点被广泛应用于...
本主题探讨的是如何用C语言来模拟C++的类结构,以应对面试中的此类问题。 首先,理解C++类的核心概念是关键。类在C++中是封装数据和函数的蓝图,它定义了一组属性(数据成员)和方法(成员函数)。在C语言中,我们...
以下是对"计算机等级考试二级C语言模拟试题及答案"这一主题的详细阐述: 1. **C语言基础知识**:C语言是一种强大的、低级的编程语言,由贝尔实验室的Dennis Ritchie开发。它的语法简洁明了,强调对内存的直接操作,...
IOS 开发学习总结 Objective-C 面向对象之——成员变量、模拟类变量、单例模式 Objective-C 中的变量根据定义位置的不同,可以分为三大类:成员变量、局部变量和全局变量。成员变量是 Objective-C 中的实例变量,不...
虽然C语言本身不支持类的继承,但可以通过模拟的方式来实现继承的概念。这通常涉及到使用结构体和指针来维护父类和子类的关系。 ```c // Base.h typedef struct _Base { void (*DisplayInfo)(struct _Base *); ...
2014年高考地理 各地名校模拟分类汇编 C单元 地球上的大气
【C语言程序设计模拟试题】是为参赛学校提供的一种赛前培训资源,旨在帮助学生熟悉C语言编程的基本概念、语法和技巧,以提高他们在实际竞赛中的表现。作为重要的参考材料,这些模拟试题集通常涵盖了从基础到进阶的...