摘要: 所谓“大端”和“小端”存储指的是计算机中多于一个字节的数据在内存中的存放方式。某些机器选择在存储器中按照从最低有效字节到最高有效字节的顺序存储对象,而另一些机器则按照从最高有效字节到最低有效字节的顺序存储。前一种规则—最低有效字节在最前面的方式,称为小端法(little endian)。大多数Intel 兼容机都采用这种规则。后一种规则—最高有效字节在最前面的方式,称为大端法(big endian)例如:一个int类型的值0x12345678,在32位计算机中占4个字节。假设其在内存中的地址为:0x101~0x103,那么大端法和小端法表示分别为:目前大多数的计算机使用的都是“小端”法而网络字 阅读全文
posted @ 2012-12-23 17:06 梓涵VV 阅读(381) 评论(0) 推荐(0)
摘要: 代码:#include <stdio.h>/* copy input to output; 2nd version */main(){ int c; c = getchar(); while(c != EOF){ putchar(c); c = getchar(); }} 直觉告诉我getchar返回值应该是char类型的,这个地方为什么不能用char类型来存储getchar()的返回值呢? 其实文中解释的很清楚,可当时没有看明白: 在键盘或者屏幕上的字符都是用char类型存储的,当然也可以用int类型来存储。这个地方使用int... 阅读全文
posted @ 2012-12-23 17:05 梓涵VV 阅读(403) 评论(0) 推荐(0)
摘要: Ping程序一般用来测试一台主机是否可达,该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显 应答。一般来说,如果不能Ping到某主机,那么就不能Telnet或者FTP到那台主机。反过来,如果不能Telnet到某台主机,那么通常可以用Ping程序来确定问题出在哪里。Ping程序还可以检测出到这台主机的往返时间,以表明该主机里我们有“多远”。大多数的TCP/IP实现都在内核中直接支持Ping服务器。ICMP回显请求和回显应答报文如下所示1 /****************************************************************/2 /* . 阅读全文
posted @ 2012-12-23 17:03 梓涵VV 阅读(812) 评论(0) 推荐(0)
摘要: 在写程序是经常会遇到这种情况:需要统计某一个类的所有对象实例的个数。一个比较简单的方法是使用一个全局的变量,但是其缺点也是显而易见的。使用static成员可以很好的解决这个问题。相对与使用全局变量使用static成员有以下优势1) static成员是在类的作用域内,很好的避免了和其他全局变量重名的问题。2)可以实现封装,static成员在访问控制上和其他的成员一样可以为private2)可以很容易的看出变量的含义,和类的关联。是一种比较好的代码风格。在C++中定义和使用static成员与在Java和C#中有较大的区别。本人已经遇到过很多错误,这里总结下用法:一、static成员的声明和定义st 阅读全文
posted @ 2012-12-23 16:59 梓涵VV 阅读(295) 评论(0) 推荐(0)
摘要: 一、C++类成员的访问权限1. Public成员public成员为类和外部“通信”的“接口”,可以在类的外部调用,没有访问限制。2. Privatec成员与public相对,private为类的“私有”成员,主要是供类内部调用。外部可以通过public成员(函数)来与其“通信”(获取其值或更改)。除此之外,类的“友元”(friend)可以调用类的私有成员。3. protected成员protected成员的访问权限处于private和public中间,在类的外部不能调用类的protected成员,只有在类的内部或者类的派生类中调用。二、 C++中的继承“多态”是面向对象程序设计的“精髓”,C+ 阅读全文
posted @ 2012-12-23 16:54 梓涵VV 阅读(344) 评论(0) 推荐(0)
摘要: 在开发C++程序时,一般在吞吐量、并发、实时性上有较高的要求。设计C++程序时,总结起来可以从如下几点提高效率:l 并发l 异步l 缓存下面将我平常工作中遇到一些问题例举一二,其设计思想无非以上三点。1任务队列1.1 以生产者-消费者模型设计任务队列 生产者-消费者模型是人们非常熟悉的模型,比如在某个服务器程序中,当User数据被逻辑模块修改后,就产生一个更新数据库的任务(produce),投递给IO模块任务队列,IO模块从任务队列中取出任务执行sql操作(consume)。 设计通用的任务队列,示例代码如下: 详细实现可参见: http://ffown.googlecode.com... 阅读全文
posted @ 2012-12-23 16:49 梓涵VV 阅读(288) 评论(0) 推荐(0)
摘要: 尽管C++ 野指针和内存泄漏一直被诟病,但是在实时性很强的应用场合,c++ 仍然是不二之选。游戏服务器开发仍然使用c++ 作为主语言,但是大多结合动态脚本技术,一方面规避了野指针和内存泄露,一方面获得了开发效率和扩展性的红利。但脚本技术不是本文的讨论重点,事实上关于c++ 与 lua的技术文章我也一直在整理中,将会另文别述。今天主要说说在使用c++过程中,如何避免和解决野指针和内存泄漏问题。野指针: 野指针的出现会导致程序崩溃,这是每个人都不愿意看到的。Linux会生成coredump文件,可用gdb分析。Win下可以注册unexception获取调用堆栈,将错误信息写到文件中。先分析一下通. 阅读全文
posted @ 2012-12-23 16:47 梓涵VV 阅读(257) 评论(0) 推荐(0)
摘要: 本文来自与:http://www.cnblogs.com/hxsyl/ 的博客 1 //正序打印自然数 0 -9 2 #include <iostream> 3 #include <cstring> 4 using namespace std; 5 6 void fun(int begin,int end) 7 { 8 cout<<begin<<" "; 9 if(begin!=end)//写成begin<end会更好 10 fun(begin+1,end); 11 } 12 int main() 13 { 14 int 阅读全文
posted @ 2012-12-23 16:43 梓涵VV 阅读(230) 评论(6) 推荐(0)