<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sytstarac的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sytstarac</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sytstarac]]></copyright><item><title><![CDATA[信号量，PV操作题目。]]></title><link>https://blog.youkuaiyun.com/sytstarac/article/details/4807575</link><guid>https://blog.youkuaiyun.com/sytstarac/article/details/4807575</guid><author>sytstarac</author><pubDate>Fri, 13 Nov 2009 15:27:00 +0800</pubDate><description><![CDATA[ （一）   图书馆有100个座位，每位进入图书馆的读者要在登记表上登记，退出时要在登记表上注销。要几个程序？有多少个进程？（答：一个程序；为每个读者设一个进程） （1）       当图书馆中没有座位时，后到的读者在图书馆为等待（阻塞）（2）       当图书馆中没有座位时，后到的读者不等待，立即回家。 解（1 )设信号量：S=100;  MUTEX=1P(S)]]></description><category></category></item><item><title><![CDATA[uC/OS-II中的全局变量声明]]></title><link>https://blog.youkuaiyun.com/sytstarac/article/details/4674009</link><guid>https://blog.youkuaiyun.com/sytstarac/article/details/4674009</guid><author>sytstarac</author><pubDate>Thu, 15 Oct 2009 09:10:00 +0800</pubDate><description><![CDATA[ 在uC/OS-II的代码中，应用了一种让人耳目一新的全局变量定义方法。在《uC/OS-II》中，作者给出了解释，但是这里还是忍不住要讨论一番。 我们知道，全局变量的使用有两个问题： 1.要给它分配内存，并且只能分配一次。2.在其它模块中也要能通过extern关键字调用。 软件开发网按照平时的定义，如果安排得不好，总是会出问题，extern起来没完。  而在uC/O]]></description><category></category></item><item><title><![CDATA[C函数返回结构体在汇编下的实现]]></title><link>https://blog.youkuaiyun.com/sytstarac/article/details/4411519</link><guid>https://blog.youkuaiyun.com/sytstarac/article/details/4411519</guid><author>sytstarac</author><pubDate>Wed, 05 Aug 2009 13:10:00 +0800</pubDate><description><![CDATA[ 编译器：vc++6.0(因为此种实现依赖编译器处理)此处只简要叙述一下机制。并附部分关键指令序列。 准备：1，关于EBP：称做栈基址指针。为什么这样说呢？我们先来看看函数调用的过程：参数从右到左压栈。call指令执行，该指令将导致EIP压栈。每个函数前两句必定是：push ebp   mov ebp,esp。则call指令后，跳到被调函数出开始执行。保存ebp，即]]></description><category></category></item><item><title><![CDATA[IEEE754 标准中的浮点表示和与十进制数的手工转换]]></title><link>https://blog.youkuaiyun.com/sytstarac/article/details/4377693</link><guid>https://blog.youkuaiyun.com/sytstarac/article/details/4377693</guid><author>sytstarac</author><pubDate>Fri, 24 Jul 2009 17:47:00 +0800</pubDate><description><![CDATA[ 从存储结构和算法上来讲，double和float是一样的，不一样的地方仅仅是float是32位的，double是64位的，所以double能存储更高的精度。        目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法，用符号、指数和尾数来表示，底数定为2——即把一个浮点数表示为尾数乘以2的指数次方再添上符号。下面是具]]></description><category></category></item><item><title><![CDATA[EOF与feof()]]></title><link>https://blog.youkuaiyun.com/sytstarac/article/details/4352861</link><guid>https://blog.youkuaiyun.com/sytstarac/article/details/4352861</guid><author>sytstarac</author><pubDate>Thu, 16 Jul 2009 10:48:00 +0800</pubDate><description><![CDATA[ 判断文件结束有两种方法：EOF和feof()查看stdio.h可以看到如下定义：#define EOF (-1)#define _IOEOF 0x0010 #define feof(_stream) ((_stream)->_flag & _IOEOF) 由此可以看出，这两种方式的原理是不同的。有人说EOF只能用于文本文件，其实不然，还要看定义的变量的类型。下面这段程]]></description><category></category></item><item><title><![CDATA[关于大小端的疑问]]></title><link>https://blog.youkuaiyun.com/sytstarac/article/details/4349569</link><guid>https://blog.youkuaiyun.com/sytstarac/article/details/4349569</guid><author>sytstarac</author><pubDate>Wed, 15 Jul 2009 10:38:00 +0800</pubDate><description><![CDATA[      看了多篇关于bigendian和littleendian的解释文章，觉得都说的不够彻底。现记录几点说的不清楚的地方，以作备忘。      首先明确大小端是与cpu相关的，而非系统平台相关的。intelX86为小端。      其次大小端对位移操作没影响。不管大小端，左移都是消高位，右移都是消低位。因为位移操作汇编出来都只有一句：         SHL/SHR   COUN]]></description><category></category></item><item><title><![CDATA[关于static_cast与danymic_cast的终极解析]]></title><link>https://blog.youkuaiyun.com/sytstarac/article/details/4086002</link><guid>https://blog.youkuaiyun.com/sytstarac/article/details/4086002</guid><author>sytstarac</author><pubDate>Fri, 17 Apr 2009 08:44:00 +0800</pubDate><description><![CDATA[ 关于static_cast和dynamic_cast:1，附详细代码并解释，总算搞清楚了！class base{ public:  virtual void foo(){}//用于添加虚函数表vtable  int a;};class left_hand:public base{};class right_hand:public base{};class derive:public ]]></description><category></category></item><item><title><![CDATA[关于fstream类拾遗]]></title><link>https://blog.youkuaiyun.com/sytstarac/article/details/4083652</link><guid>https://blog.youkuaiyun.com/sytstarac/article/details/4083652</guid><author>sytstarac</author><pubDate>Thu, 16 Apr 2009 12:22:00 +0800</pubDate><description><![CDATA[ 关于STL中的fstream类：1，指定要绑定或打开的文件名参数时，一定要写上后缀，若文件在当前路径下（当前源文件路径下），可只写全文件名，否则加上绝对路径。2，用操作符>>从流中读到string中时，遇到空格自动停止，这是由string的设计决定的。因为string将输入流（包括cin）的空格当作结束符，包括换行和结束符。从流中直接读到cout中时，会一直读到文件结束为止。不受空格]]></description><category></category></item><item><title><![CDATA[关于vector中的assign和resize函数]]></title><link>https://blog.youkuaiyun.com/sytstarac/article/details/4077204</link><guid>https://blog.youkuaiyun.com/sytstarac/article/details/4077204</guid><author>sytstarac</author><pubDate>Wed, 15 Apr 2009 21:42:00 +0800</pubDate><description><![CDATA[assign函数需要2个参数，第一个参数指定新的size，第2个指定每个元素都取的value。size()函数返回assign中的第一个参数值。调用该函数一定要指定第2个参数值，调用完后，是全新的size，全新的值。 resize函数有2个重载版本，一个只有一个size_type参数，一个除了size_type参数外还有_Ty _val，即“可选”新元素值。 先说第一个版本： ]]></description><category></category></item></channel></rss>