
C/C++窍门
roynee
这个作者很懒,什么都没留下…
展开
-
“无形参函数”利用汇编代码传递变量地址 [有点意思]
说明:8位的: AH,AL,BH,BL,CH,CL,DH,DL 16位的: AX,BX,CX,DX,BP,SP,DI,SI等 32位的: EAX,EBX,ECX,EDX,ESP,ESP等 相关32位汇编指令寄存器的标识符号(常用)【ebp:基址指针寄存器 】【ebx:通用寄存器 】【edi:目的索引地址寄存器】原创 2009-06-19 00:42:00 · 1119 阅读 · 0 评论 -
C++中有关volatile关键字的作用--阻止编译器将其变量优化缓存到寄存器(和线程相关)(转自百度)
就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。 它是被设计用来修饰被不同线程访问和修改的变量。 如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要 么编译器失去大量优化的机会。 class Gadget{ public转载 2009-06-19 00:40:00 · 3592 阅读 · 0 评论 -
有个C++虚继承的问题
问题:C++中虚继承,Grandma <- Father <- Son, Father 虚继承自Grandma,但是构造Son对象的时候为什么只能掉到Grandma的默认构造函数,真是费解,虚继承主要是用于解决多重继承产生ambigrous问题,这个问题由虚继承引起,不涉及多重继承的层面问题......[已经解决]原因:在C++编译器中建立对象时,如原创 2009-06-19 00:57:00 · 731 阅读 · 0 评论 -
14道C语言的迷题 转自http://blog.youkuaiyun.com/haoel/archive/2009/06/01/4231029.aspx
本篇文章《C语言的谜题》展示了14个C语言的迷题以及答案,代码应该是足够清楚的,而且我也相信有相当的一些例子可能是我们日常工作可能会见得到的。通过这些迷题,希望你能更了解C语言。如果你不看答案,不知道是否有把握回答各个谜题?让我们来试试。 1、下面的程序并不见得会输出 hello-std-out,你知道为什么吗?#include #include int mai转载 2009-06-19 09:21:00 · 844 阅读 · 0 评论 -
基于环形队列的消息队列的实现 (转贴优快云)
环形队列有一个head指针,有一个tail指针,假设我们用一个环形队列来表示一组资源, 有一个线程产生资源并往队列里发送,另外一个线程从队列里取资源,一般的情况下实现 这样一个功能需要用到OS的互斥/事件/信号量API,在两个线程运行都很快时这些OS的API会带来 比较大的系统开销,怎么样尽可能的减少OS的API调用呢,下面是一个简单的实现方法(假设只有两个 线程,一个往队转载 2009-06-26 21:22:00 · 1338 阅读 · 0 评论