范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

C泛型指针与共用体对泛型编程的模拟

  C++用模板来实现泛型,C没有模板,但通过void*指针可以一定程度上模拟泛型,特别是在库函数中用做函数参数或函数返回值,如memmove()、qsort()等。
  以下是一个用void*做函数参数的小demo:#include  enum TYPE{     CHAR,INT,DOUBLE }; void print(void *p, enum TYPE t) {     switch(t)     {     case CHAR:         printf("%c ", *(char *) p);         break;     case INT:         printf("%d ", *(int *) p);         break;     case DOUBLE:         printf("%0.22lf ", *(double *) p);         break;     default:         printf("error: unknown type ");     } } int main() {     char ch = "a";     print(&ch,CHAR);     int n = 12;     print(&n,INT);     double d =0.12345678901234567890123;     print(&d,DOUBLE);     getchar();     return 0; } /* a 12 0.1234567890123456800000 */
  也可以用共用体来同等实现:#include   typedef struct Datatype{     enum{         character,integer,floating_point     }vartype;     union{         char c;         int i;         double f;     }; }datatype;  void print(datatype *dt){     switch(dt->vartype){     case character:         printf("character type: %c ",dt->c);         break;     case integer:         printf("integer type: %d ",dt->i);         break;     case floating_point:         printf("floating_point type: %f ",dt->f);         break;     } }  int main() {     datatype a;     a.vartype = character;     a.c = "c";     print(&a);          datatype b;     b.vartype = integer;     b.i=2;     print(&b);          datatype c;     c.vartype = floating_point;     c.f=3.14;     print(&c);     getchar();     return 0; } /* character type: c integer type: 2 floating_point type: 3.140000 */
  用C++的类就优雅多了:#include  using namespace std; class datatype{     enum{         character,integer,floating_point     }vartype;     union{         char c;         int i;         double f;     }; public:     datatype(char ch){         vartype = character;         c = ch;     }     datatype(int ii){         vartype = integer;         i=ii;     }     datatype(double d){         vartype = floating_point;         f=d;     }     void print(); }; void datatype::print(){     switch(vartype){     case character:         cout<<"character type: "<  template  void print(TT data) {     std::cout<
年度最佳休旅车之2020款别克君威TourX2020款别克君威TourX优点出色的载货能力,时尚的钣金件,宁静的座舱。缺点竞争对手提供了更好的燃油经济性,基本车型没有提供理想的驾驶员辅助功能,而竞争车则提供了更高的离地间隙。年度最佳休旅车之2020款捷豹XFSportbrake2020款捷豹XFSportbrake优点血统纯正的形象和传承,令人印象深刻的货物容量。缺点内部装饰不足,行驶僵硬,制动性能差。结论细分市场中的精致甜点。总览捷豹的稀有品牌传播到几年度最佳掀背车之2021款丰田卡罗拉2021款丰田卡罗拉优点乘坐舒适,轿车后排座椅宽敞,标准配置。缺点发动机可能嘈杂,不如顶级竞争对手那么引人注目,掀背车的后排座椅和货舱很小。结论卡罗拉轿车和掀背车并不是最令人兴奋的年度最佳掀背车之2020款本田飞度2020款本田飞度优点比较省油,后排座椅宽大。缺点发动机在高速行驶时声音很大,没有什么驾驶乐趣。结论缺乏个性的东西,在实用性上增加了两倍。总览2020款的本田飞度(HondaFit夏天夏天悄悄过去,留下小秘密居然跟着唱出来!七夕你都挺过来了,还怕什么中元节,放心吧,活人都不要你,更何况是鬼。你们也有这个感觉吗?微博网友超慨贰肆想想真的很少有女孩子能拒绝宇宙星空和天文望远镜白色的床单和被双十一尖货好价,由我没套路,开整大家都在苦恼双十一的优惠政策?什么优惠叠加,凑够满减喵糖总动员,定金膨胀等等想消费还真得回学校重修一下数学可能一顿操作猛如虎到头来只省下四块五今年双十一UI由我不讲套路无需尾款交付如果有人说你胖,你就这么回他!哈哈哈哈我仅仅胖着玩玩儿,你却丑得那么仔细!我胖都这么美,瘦下来还了得?我胖你丑,所以我们是好朋友!体重不过百,不是平胸就是矮贱人就是较轻!说得好像你瘦,就有人追你一样!我哪里胖了,我仅仅她的女儿很差劲,作风也不好,到处跟五六个男人混,抽烟喝酒打麻将六年前,58岁寡妇罗先生,花338000元娶了38岁的程女士,婚后夫妻感情很好。然而,5个月前,结婚6年的妻子却突然失踪,让他泪流满面。这种老夫少妻的婚姻究竟是怎么回事?这位老教授减肥一个半月,这两天突然暴食,能给我一点建议吗?减重并非一日之功。另外,你一天的暴食不会影响你减肥,两次吃多点,无所谓,真的无所谓,因为你吃一顿都不是胖的。人体的消化吸收能力是有限的,不可能消化得很好。您必须清楚地认识到,减肥是手上这个穴,每天按一按,血管通畅心情好气色好缓解高血压按捏左手无名指第三个指节,可以有效防备和医治高血压,有效缓解血管压力,从而起到呵护心脏的浸染。一样平常高血压患者感受头晕,可能是其血压有升高。此时按压左手无名指第三个指节2021华为ICT人才联盟双选会福建站成功举办为推进我省ICT人才的良性发展搭建起企业与高校毕业生之间的桥梁,正值第四届数字中国峰会,4月24日下午,在福建省教育厅的指导下,由华为公司主办,福建省高校毕业生就业创业促进会承办,
亚马逊侵权病因自己!泽宝再出大招!广东省培育200个亿级卖家一周的工作按下了暂停键,我们为卖家朋友们盘点了本周比较重要的10大要闻,为我们跨境电商的大时代留下一个个小坐标。平台1。亚马逊100多条热门listing变不可售,再爆审核bug点两只独角兽走到一起互联网医疗进入深水区互联网医疗领域的两家独角兽级别的企业走到了一起。第一财经记者从医联集团处确认,该公司已经整合未来医生。两者最新一轮融资后的估值分别达40亿美元和10亿美元,这也是数年来互联网医疗领马云的无人超市怎么没人提了?2017年夏天,和气温一样热度上升的马云无人超市一下子吸引了互联网创投们的眼球,客户进店,选购,结账全自助,店内无一个店员。无人超市一下子颠覆了传统超市,物联网新零售横空出世。代表break语句与continue语句一break语句如果要退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可以使用break语句。二continue语句如果要返回到while循环开头,并根据条升级传统,超越传统,小米智能插线板2为生活加分随着我们的生活不断发展和提高,对生活的舒适性提升就催生了智能家居的快速发展,但是毕竟家电还是家居装修,都不是如同电子产品那样家庭迭代俺么快的,所以,一些辅助型的智能家居好物就有了市十四五新型基础设施建设专家谈之六推进融合基础设施与信息基础设施协同发展信息基础设施和融合基础设施是十四五新型基础设施建设的两个重点方向,融合基础设施是信息基础设施发展的拓展和延伸,信息基础设施是融合基础设施发展的动力和支撑。两者相互作用相互促进,需要工业3D视觉,为智能制造打开新视界1969年,第一片CCD图像传感器在美国贝尔实验室诞生,它为数字影像产业的发展打开了一扇新的大门。从此,人们的日常生活生产都与影像视觉相联系。机器视觉的世界也在萌芽,从黑白到彩色,家具企业发展数字工厂智能制造,可以从这3个方面去考虑家具市场竞争进入白热化,面对原材料劳动力成本上升节能减排等问题,家具企业转型升级的压力倍增。而随着智能制造大数据成为各大制造企业关注的热点,未来制造业的发展方向和雏形正在逐渐形成,医疗信息服务将成为阿里搜索领域重要战略北京商报讯(记者何倩)12月14日,据夸克App与中国传媒大学互联网信息研究院联合发布的中国Z世代智能信息全域研究报告显示,建党百年奥运会中国航天备考青年破防YYDS疫苗接种等成为2022如何投资基金?如果能准确跑进赛道,恭喜你,随时可以毕业回家过年,跑错赛道,那你有可能得坚持跑一年!先汇总一下,明年看好的是半导体军工新能源板块。这几类板块成长性最好。其次是大消费板块和医疗。半导教程20国产编程语言CbrotherByteArray字节操作ByteArray类CBrother提供了ByteArray类来处理字节流varmyBytenewByteArray(102410)创建一个10KB的缓冲varmyByte2new