先前看了SDL的SDL_Event, 不大明白其中的用法,后来翻了翻书中关于union的用法,再则看到了云风的这篇文章C 语言中统一的函数指针, 就写了一个不成文的例子, 把union作为函数的参数传递, 可以将两个毫不相干的不同类型的结构数据粘合在一起, 的确很有意思.
#include <stdio.h> #include <stdlib.h> typedef enum bool {false, true} bool; typedef struct Number { unsigned char type; unsigned int num; bool sign; } Number; typedef struct OP { unsigned char type; char ch; } OP; typedef union Button { unsigned char type; Number num; OP op; } Button; void printNum(int num) { printf("Print Number:%d\n", num); } void printOP(char op) { printf("Print Op:%c\n", op); } void cal(Button p) { switch(p.type) { case 1: printNum(p.num.num * ((p.num.sign) ? 1 : -1)); break; case 2: printOP(p.op.ch); break; } } int main() { Button p1; p1.num = (Number) {1, 9, false}; cal(p1); p1.op = (OP) {2, '='}; cal(p1); exit(0); }
这里要注意结构体的第一个字段一定要与union的第一个字符对应起来, 至于为什么, 去翻看union用法吧...
2011年1月11日 22:09
云风又犯傻了……
C语言本来就有"统一的函数指针", 任何一种函数指针都是。
2011年1月16日 03:14
@ownwaterloo: 为什么要说“又”呢。。。。
2011年1月16日 07:21
@翻墙砖家:
因为他"经常"啊。
说个最出名的吧, 在《游戏之旅》中,6.2.2 低效的静态变量 141页
同样的道理,临时构造一个对象,
使用系统提供的new操作间接地调用了malloc是一种低效的操作;
注重效率的做法是一个placement new,
而改用alloca在堆栈中分配对象需要的空间,
然后在退出函数时直接调用对象的析构函数,
而不是delete方法,
让函数退出时的堆栈调整操作自动回收内存。
才看到这段时, 我自己都被忽悠了。
回过头再看才发现犯二了……
2011年3月22日 01:36
^^这blog挺有意思
mark一下..
这里不能加好友啊 可惜了><
2023年12月13日 13:53
I found this is an informative and interesting post so i think so it is very useful and knowledgeable. I would like to thank you for the efforts you have made in writing this article.
2024年1月21日 14:23
Interesting post. I Have Been wondering about this issue. so thanks for posting. Pretty cool post.It 's really very nice and Useful post.Thanks
2024年1月21日 14:24
I think about it is most required for making more on this get engaged
2024年1月21日 16:50
I need to seek destinations with important data on given point and give them to educator our feeling and the articl
2024年1月21日 17:43
This article is an appealing wealth of informative data that is interesting and well-written
2024年1月21日 18:12
Someone Sometimes with visits your blog regularly and recommended it in my experience to read as well. The way of writing is excellent and also the content is top-notch. Thanks for that insight you provide the readers
2024年1月21日 18:32
This is a great article thanks for sharing this informative information. I will visit your blog regularly for some latest post. I will visit your blog regularly for Some latest post
2024年1月21日 19:22
This article is an appealing wealth of informative data that is interesting and well-written
2024年1月21日 20:02
Like your cool blog, I'll try hard
2024年1月21日 21:06
I have read your article; it is very informative and helpful for me. I admire the valuable information you offer in your articles. Thanks for posting it
2024年1月22日 13:47
All your hard work is much appreciated. Nobody can stop to admire you. Lots of appreciation
2024年1月22日 14:29
I just found this blog and have high hopes for it to continue. Keep up the great work, its hard to find good ones. I have added to my favorites. Thank You
2024年1月22日 14:58
I haven’t any word to appreciate this post.....Really i am impressed from this post....the person who create this post it was a great human..thanks for shared this with us
2024年1月22日 15:32
That appears to be excellent however i am still not too sure that I like it. At any rate will look far more into it and decide personally
2024年1月22日 16:12
Cool you write, the information is very good and interesting, I'll give you a link to my site
2024年1月24日 16:28
It’s hard to find knowledgeable people on this topic however you sound like you know what you’re talking about! Thanks
2024年1月24日 18:08
Thanks so much for this information. I have to let you know I concur on several of the points you make here and others may require some further review, but I can see your viewpoint
2024年1月26日 16:08
바카라사이트 바카라사이트 우리카지노 카지노는 바카라, 블랙잭, 룰렛 및 슬롯 등 다양한 게임을 즐기실 수 있는 공간입니다. 게임에서 승리하면 큰 환호와 함께 많은 당첨금을 받을 수 있고, 패배하면 아쉬움과 실망을 느끼게 됩니다.
2024年1月26日 16:24
하노이 꼭 가봐야 할 베스트 업소 추천 안내 및 예약, 하노이 밤문화 에 대해서 정리해 드립니다. 하노이 가라오케, 하노이 마사지, 하노이 풍선바, 하노이 밤문화를 제대로 즐기시기 바랍니다. 하노이 밤문화 베스트 업소 요약 베스트 업소 추천 및 정리.
2024年1月29日 15:27
No.1 먹튀검증 사이트, 먹튀사이트, 검증사이트, 토토사이트, 안전사이트, 메이저사이트, 안전놀이터 정보를 제공하고 있습니다. 먹튀해방으로 여러분들의 자산을 지켜 드리겠습니다. 먹튀검증 전문 커뮤니티 먹튀클린만 믿으세요!!
2024年1月29日 15:41
베트남 남성전용 커뮤니티❣️ 베트남 하이에나 에서 베트남 밤문화를 추천하여 드립니다. 베트남 가라오케, 베트남 VIP마사지, 베트남 이발관, 베트남 황제투어 남자라면 꼭 한번은 경험 해 봐야할 화끈한 밤문화로 모시겠습니다.
2024年1月31日 19:23
이 게시물에 많은 정보가 포함되어있어 매우 유용하다는 것을 알게되어 기쁩니다. 나는 항상 양질의 콘텐츠를 읽는 것을 선호하며 당신이 게시물에서 찾은 것을 읽었습니다. 공유 해주셔서 감사합니다
2024年1月31日 19:44
이 게시물에 많은 정보가 포함되어있어 매우 유용하다는 것을 알게되어 기쁩니다. 나는 항상 양질의 콘텐츠를 읽는 것을 선호하며 당신이 게시물에서 찾은 것을 읽었습니다. 공유 해주셔서 감사합니다
2024年1月31日 20:02
이 게시물에 많은 정보가 포함되어있어 매우 유용하다는 것을 알게되어 기쁩니다. 나는 항상 양질의 콘텐츠를 읽는 것을 선호하며 당신이 게시물에서 찾은 것을 읽었습니다. 공유 해주셔서 감사합니다
2024年1月31日 20:15
그것은 훌륭한 사고 방식입니다. 그럼에도 불구하고 그 수학에 대해 설교하는 것이 무엇이든간에 모든 문장을 만드는 데 도움이되는 것은 아닙니다. 사실상 어떤 방법 으로든 본인의 글을 델리 시우스로 홍보하기 위해 노력한 것 외에도 많은 노력을 기울 였음에도 불구하고 귀하의 정보 사이트를 사용하는 것이 딜레마 인 것 같습니다. 아이디어를 다시 확인해 주시면 감사하겠습니다. 다시 한 번 감사합니다
2024年1月31日 20:36
그것은 훌륭한 사고 방식입니다. 그럼에도 불구하고 그 수학에 대해 설교하는 것이 무엇이든간에 모든 문장을 만드는 데 도움이되는 것은 아닙니다. 사실상 어떤 방법 으로든 본인의 글을 델리 시우스로 홍보하기 위해 노력한 것 외에도 많은 노력을 기울 였음에도 불구하고 귀하의 정보 사이트를 사용하는 것이 딜레마 인 것 같습니다. 아이디어를 다시 확인해 주시면 감사하겠습니다. 다시 한 번 감사합니다
2024年1月31日 20:57
나는 그것의 모든 작은 부분을 확실히 즐기고 있으며 당신이 게시하는 새로운 내용을 확인하기 위해 북마크했습니다.
2024年1月31日 21:09
나는 그것의 모든 작은 부분을 확실히 즐기고 있으며 당신이 게시하는 새로운 내용을 확인하기 위해 북마크했습니다.
2024年1月31日 21:23
이 게시물에 많은 정보가 포함되어있어 매우 유용하다는 것을 알게되어 기쁩니다. 나는 항상 양질의 콘텐츠를 읽는 것을 선호하며 당신이 게시물에서 찾은 것을 읽었습니다. 공유 해주셔서 감사합니다
2024年1月31日 21:35
이 게시물에 많은 정보가 포함되어있어 매우 유용하다는 것을 알게되어 기쁩니다. 나는 항상 양질의 콘텐츠를 읽는 것을 선호하며 당신이 게시물에서 찾은 것을 읽었습니다. 공유 해주셔서 감사합니다
2024年6月03日 17:58
The tech-original mission is to help you better understand technology, and make better decisions in the fields of IT, Tech, and Crypto.
https://www.tech-original.com/
2024年6月08日 12:25
The tech-original mission is to help you better understand technology, and make better decisions in the fields of IT, Tech, and Crypto.
https://www.tech-original.com/