<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bit_x的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bit_x</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bit_x]]></copyright><item><title><![CDATA[windows编译的库无法在其他机器上使用]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/20390183</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/20390183</guid><author>bit_x</author><pubDate>Mon, 03 Mar 2014 18:21:34 +0800</pubDate><description><![CDATA[在别的机器上编译过的libprotobuf.lib和libconfig.lib不能在其他机器上使用。
编译时libprotobuf静态库会提示无法解析外部符号的错误。
链接时libconfig.lib动态库链接到libconfig++d.dll时会提示内存错误信息。
原因有多种：
比如编译lib库的计算机为32位的，而是用lib的计算机为64位，可能造成此问题；
还有可能是编译lib库的]]></description><category></category></item><item><title><![CDATA[有关protobuf]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/20129841</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/20129841</guid><author>bit_x</author><pubDate>Fri, 28 Feb 2014 12:57:03 +0800</pubDate><description><![CDATA[protobuf
客户端C++最后总结使用libprotobuf-lite版本（如果够用，服务器端也用lite版），比较小，拿Version-2.5.0编译出来的静态库看：
mac上1.6M，windows上3.4B，centos上2.1M；
如果用在手机上的话1.6M有些大，还没在手机上用过（后续在看）；不过还可将就，因为现在动不动一个游戏客户端就几十几百M的；
注意在.proto文件中]]></description><category></category></item><item><title><![CDATA[database is locked和SQLITE_BUSY]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/18663561</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/18663561</guid><author>bit_x</author><pubDate>Wed, 22 Jan 2014 15:53:34 +0800</pubDate><description><![CDATA[这是官方文档：http://www.sqlite.org/cvstrac/wiki?p=DatabaseIsLocked


下面我做了几个实验：
1、多个线程（pthread），使用同一个句柄（一次sqlite3_open，同一个数据库文件），在多个线程中同时使用此句柄，这些线程中有的是进行select操作的，有的是进行update操作的，使用的都是sqlite3_exec函数；结果是没]]></description><category></category></item><item><title><![CDATA[socket epoll 模型]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/17286599</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/17286599</guid><author>bit_x</author><pubDate>Thu, 12 Dec 2013 18:13:23 +0800</pubDate><description><![CDATA[/* 
 * File:   main.c
 * Author: xys
 *
 * Created on 2013年12月12日, 下午3:14
 * 
 * 实现功能：通过epoll,处理多个socket请求
 * 监听一个端口，监听到有链接时，添加epoll_event
 * 
 * 命令行下 telnet localhost 3304
 */

#include 
#include 
#i]]></description><category></category></item><item><title><![CDATA[c++ primer总结小点]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/12967343</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/12967343</guid><author>bit_x</author><pubDate>Wed, 13 Nov 2013 10:53:29 +0800</pubDate><description><![CDATA[1、关于变量的初始化：如果一个变量在全局内定义的，那么系统会保证给他提供初始值0。如果变量在局部内定义的，或是通过new表达式动态分配的，则系统不会向他提供初始值0。这些对象被称为未初始化的。未初始化的对象不是没有值，而是他得值是未定义的。（与它相关联的内存区中含有一个随机的位串，可能是以前使用的结果。）
因为未初始化对象是个常见的错误，而且很难发现，所以，一般建议为每个被定义的对象提供一个初始]]></description><category></category></item><item><title><![CDATA[网络套接字socket]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/15809661</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/15809661</guid><author>bit_x</author><pubDate>Wed, 13 Nov 2013 10:49:26 +0800</pubDate><description><![CDATA[一、socket建立的客户端和服务器端图示：







二、注意事项：

1、大小端：因为不知道发送端机器使用的字节序是否和接收端机器使用的字节序相同，所以发送前都将其转换为网络字节序（大端字节序），接受时在讲网络字节序转换为本机字节序。
发送端：在发送非字符串的类型（如整型）时，要注意在发送前使用htonl或者htons将其本机字节序（可能大端，也可能小端）转换为网络字]]></description><category></category></item><item><title><![CDATA[C++ virtual相关]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/12910259</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/12910259</guid><author>bit_x</author><pubDate>Tue, 22 Oct 2013 13:56:03 +0800</pubDate><description><![CDATA[对于一个非虚函数的调用，编译器在编译时刻选择被调用的函数。而虚函数调用的决定则要等到运行时刻。在执行程序每个调用点上，系统根据被调用对象的实际基类或派生类的类型来决定选择哪一个虚拟函数实例。]]></description><category></category></item><item><title><![CDATA[C++两种内存分配方式基础]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/12851571</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/12851571</guid><author>bit_x</author><pubDate>Fri, 18 Oct 2013 16:09:33 +0800</pubDate><description><![CDATA[静态与动态分配内存的两个主要区别：
1、静态对象是有名字的变量，我们直接对其进行操作。而动态对象是没有名字的变量，我们通过指针间接地对他进行操作。

int ival = 123;

2、静态对象的分配与释放由编译器自动处理，程序员需要理解这一点，但不需要做任何事情。相反，动态对象的分配和释放，必须由程序员显式的管理。

int *pint = new int(1024);
或者
i]]></description><category></category></item><item><title><![CDATA[C++位操作技巧]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/12837153</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/12837153</guid><author>bit_x</author><pubDate>Thu, 17 Oct 2013 15:36:53 +0800</pubDate><description><![CDATA[一、注意事项：
a、与：&，两位都为1，才为1；
b、或：|，两位都为0，才为0；
c、微操作只能用于整形数据，float和double进行位操作时编译器会报错；
d、异或：^，两位相同为0，不同为1；
e、取反：~，1变为0，0变为1；
f、左移：
g、右移：>>，各二进制全部向右移位，对于无符号数，低位丢失，高位补零；有符号数个编译器不同，有的补符号位，有的补0；
二、技巧用途]]></description><category></category></item><item><title><![CDATA[C++ new和delete的相关形式]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/9417665</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/9417665</guid><author>bit_x</author><pubDate>Tue, 23 Jul 2013 09:48:20 +0800</pubDate><description><![CDATA[1、new operator：string *ps = new string("abcd");分配内存+调用构造函数初始化内存中的对象
delete的时候：delete(ps);操作是 删除内存+执行析构函数；
2、operator new：void *raw = operator new(sizeof(string));只分配内存，不调用构造函数；同c语言中的malloc
delete的时]]></description><category></category></item><item><title><![CDATA[C++中继承自array不要使用多态]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/9417483</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/9417483</guid><author>bit_x</author><pubDate>Tue, 23 Jul 2013 09:24:21 +0800</pubDate><description><![CDATA[假设如下一种情况：
基类---ArrayBase  b;
继承ArrayBase的子类----ArraySub a;
使用上述类的多态函数---fun(const ArrayBase& a){}(注意a是子类，存在多态)
假如在fun函数中有操作a[i]需要取得a[i]的地址，数组取地址的方式是sizeof(ArrayBase*i)；请看好sizeof中的类型，使用的是基类，因此计算a[i]]></description><category></category></item><item><title><![CDATA[C++四种强制转换]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/9412113</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/9412113</guid><author>bit_x</author><pubDate>Mon, 22 Jul 2013 18:17:17 +0800</pubDate><description><![CDATA[static_case(obj)：和C风格的强转一样；
const_case(obj)：去掉const的修饰方式；
dynamic_case(obj)：将基类转换到子类，失败返回空指针(当前指针进行类型转换时)或抛出异常(当对引用进行类型转换时)；
reinterpret_case(obj)：主要用在函数指针类型间的转换；不过很难移植，最好少用；]]></description><category></category></item><item><title><![CDATA[[AS3] 移除物件和事件問題]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/5973898</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/5973898</guid><author>bit_x</author><pubDate>Fri, 29 Oct 2010 12:39:00 +0800</pubDate><description><![CDATA[<br />[AS3] 移除物件和事件問題<br />http://www.walkone.com.tw/blog/?user_id=justdoit&subject_id=6521<br /> ]]></description><category></category></item><item><title><![CDATA[数据库三种模型 与 RDBMS关系]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/5887903</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/5887903</guid><author>bit_x</author><pubDate>Thu, 16 Sep 2010 11:19:00 +0800</pubDate><description><![CDATA[<br />支持sql的RDBMS同时都支持关系数据库的三种模型外模式对应于视图和部分基本表模式对应于基本表内模式对应于存储文件<br /> ]]></description><category></category></item><item><title><![CDATA[EXITS等价替换提高效率//////数据库三种模型与RDBMS关系]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/5887902</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/5887902</guid><author>bit_x</author><pubDate>Thu, 16 Sep 2010 11:19:00 +0800</pubDate><description><![CDATA[支持sql的RDBMS同时都支持关系数据库的三种模型外模式对应于视图和部分基本表模式对应于基本表内模式对应于存储文件]]></description><category></category></item><item><title><![CDATA[连接（JOIN）----理论上的]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/5887761</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/5887761</guid><author>bit_x</author><pubDate>Thu, 16 Sep 2010 10:34:00 +0800</pubDate><description><![CDATA[<br /><br />连接：从两个关系的笛卡尔积中选择属性间满足一定条件的元组<br />等值连接：从关系R和S的广义笛卡尔积中选择属性A和B相等的元组<br />自然连接：是一种特殊的等只连接，要求两个关系中进行比较的分量必须有相同的属性列，并且在结果中把重复的属性列去掉<br /> <br />两个关系R和S在做自然连接时，选择两个关系在公共属性上值相等的元组构成新的关系。此时，R中某些元组有可能在S中不存在公共属性上值相等的元组，从而造成R中某些元组有可能在S中不存在公共属性上值相等的元组，从而造成]]></description><category></category></item><item><title><![CDATA[数据库设计中的一些技巧]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/5886550</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/5886550</guid><author>bit_x</author><pubDate>Wed, 15 Sep 2010 17:32:00 +0800</pubDate><description><![CDATA[1. 原始单据与实体之间的关系
　可以是一对一、一对多、多对多的关系。在一般情况下，它们是一对一的关系：即一张原始单据对应且只对应一个实体。在特殊情况下，它们可能是一对多或多对一的关系，即一张原始单证对应多个实体，或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后，对我们设计录入界面大有好处。
　　〖例1〗：一份员工履历资料，在人力资源信息系统中，就对应三个基本表：员工基本情况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。
2. 主键与外键
　一般]]></description><category></category></item><item><title><![CDATA[三范式]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/5886491</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/5886491</guid><author>bit_x</author><pubDate>Wed, 15 Sep 2010 17:19:00 +0800</pubDate><description><![CDATA[<br />第一范式（1NF）无重复的列<br />所谓第一范式（1NF）是指数据库表的每一列都是不可分割的基本数据项，同一列中不能有多个值，即实体中的某个属性不能有多个值或者不能有重复的属性。<br /> <br />第二范式（2NF）属性完全依赖于主键[消除部分子函数依赖]<br />第二范式（2NF）是在第一范式（1NF）的基础上建立起来的，即满足第二范式（2NF）必须先满足第一范式（1NF）。第二范式（2NF）要求数据库表中的每个实例或行必须可以被惟一地区分。<br /> <br />第三范式（3N]]></description><category></category></item><item><title><![CDATA[LAMP Install basing ubuntu]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/5885415</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/5885415</guid><author>bit_x</author><pubDate>Wed, 15 Sep 2010 10:53:00 +0800</pubDate><description><![CDATA[<br />http://forum.ubuntu.org.cn/viewtopic.php?f=43&t=203541<br />http://wiki.ubuntu.org.cn/Apache]]></description><category></category></item><item><title><![CDATA[sql select 的执行顺序]]></title><link>https://blog.youkuaiyun.com/bit_x/article/details/5883841</link><guid>https://blog.youkuaiyun.com/bit_x/article/details/5883841</guid><author>bit_x</author><pubDate>Tue, 14 Sep 2010 16:19:00 +0800</pubDate><description><![CDATA[<br /><br />SELECT语句的执行的逻辑查询处理步骤：<br /> <br />(8)SELECT (9)DISTINCT<br />(11)<TOP_specification> <select_list><br />(1)FROM <left_table><br />(3)　<join_type> JOIN <right_table><br />(2)　 ON <join_condition><br />(4)WHERE <where_condition><br />(5)GROUP BY ]]></description><category></category></item></channel></rss>