![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 86
laoliu_soso
这个作者很懒,什么都没留下…
展开
-
C++中头文件相互包含的几点问题
一、类嵌套的疑问C++头文件重复包含实在是一个令人头痛的问题,前一段时间在做一个简单的数据结构演示程序的时候,不只一次的遇到这种问题。假设我们有两个类A和B,分别定义在各自的有文件A.h和B.h中,但是在A中要用到B,B中也要用到A,但是这样的写法当然是错误的:class B;class A{ public: B b;};class B{ publ...2010-04-02 16:29:46 · 258 阅读 · 0 评论 -
全局变量和局部变量在内存里的区别
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(stat...原创 2010-11-09 21:55:12 · 253 阅读 · 0 评论 -
字节序
这几天又开始做网络方面的应用了,既然是网络编程,字节序肯定是需要牢记的一个知识点了。贴篇文章,以备忘!不同的 CPU 有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序 最常见的有两种 1 . Little endian :将低序字节存储在起始地址 2 . Big endian :将高序字节存储在起始地址 LE little-endian 最符合人的思维的字节序 地址...原创 2010-12-01 21:03:03 · 103 阅读 · 0 评论 -
Overview of Protocol Buffers Developer Guide
Developer GuideWelcome to the developer documentation for protocol buffers – a language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols...原创 2010-12-07 10:31:53 · 156 阅读 · 0 评论 -
Language Guide of Protocol Buffers Developer Guide
Language GuideDefining A Message TypeScalar Value TypesOptional And Default ValuesEnumerationsUsing Other Message TypesNested TypesUpdating A Message TypeExtensionsPackagesDefin...原创 2010-12-07 10:34:22 · 146 阅读 · 0 评论 -
Style Guide of Protocol Buffers Developer Guide
Style GuideThis document provides a style guide for .proto files. By following these conventions, you'll make your protocol buffer message definitions and their corresponding classes consistent an...原创 2010-12-07 10:36:24 · 109 阅读 · 0 评论 -
Encoding of Protocol Buffers Developer Guide
EncodingA Simple MessageBase 128 VarintsMessage StructureMore Value TypesEmbedded MessagesOptional And Repeated ElementsField OrderThis document describes the binary wire format fo...原创 2010-12-07 10:37:19 · 128 阅读 · 0 评论 -
Protocol Buffer Basics: C++
Protocol Buffer Basics: C++This tutorial provides a basic C++ programmer's introduction to working with protocol buffers. By walking through creating a simple example application, it shows you how...原创 2010-12-07 10:38:21 · 170 阅读 · 0 评论 -
Techniques of Protocol Buffers Developer Guide
TechniquesStreaming Multiple MessagesLarge Data SetsUnion TypesSelf-describing MessagesThis page describes some commonly-used design patterns for dealing with Protocol Buffers. You can a...原创 2010-12-07 10:39:13 · 96 阅读 · 0 评论 -
JobFlow要继续考虑的问题
小记:1.把作业队列的概念扩展为作业池JobPool,提供GetJob、PutJob两个最基本的抽象接口定义。(或者加上GetJobs、PutJobs)。任何实例化的服务必须有一个集成至JobPool的派生类,至于GetJob和Putjob可以多样化实现,这样就可以支持多种存储结构,包括DB、网络、内存、磁盘文件等,但是对于不可靠的存储介质,例如DB、网络等要充分考虑调用的阻塞问题,需要超...2010-09-17 22:35:11 · 217 阅读 · 0 评论 -
C++单例不可继承
C++语言和单例的特性决定了单例不可继承。单例有如下几项要求:1. 构造函数为私有,或者至少不可以被此类的继承体系以外的类访问当,即要么是private,最坏也是protected2. 构造函数只被调用一次,以初始化static对象。 所以如果B1,B2,继承至单例A,则不可以实现在程序运行的整个过程中既有一个B1单例又有一个B2单例,而且两个单例不存在依赖关系,原因是B1、...2010-09-17 17:24:01 · 935 阅读 · 0 评论 -
C++库介绍
基础类1、 Dinkumware C++ Library参考站点:http://www.dinkumware.comP.J. Plauger编写的高品质的标准库。P.J. Plauger博士是Dr. Dobb's程序设计杰出奖的获得者。其编写的库长期被Microsoft采用,并且最近Borland也取得了其OEM的license,在其C/C+ +的产品中采用Dinkumware的库。...2010-04-02 16:30:18 · 149 阅读 · 0 评论 -
头文件互包含于名字空间的相关问题
c/c++里面头文件的使用是相当频繁的,从头文件里面,基本上可以得到程序中绝大部分的信息.但是,在头文件中,却经常出现各种问题.首先便是重复定义的问题.在头文件里面定义,虽然可以使定义部分和实现部分分开,但是,当文件比较多的时候,一个头文件往往被重复包含了很多次,间接的造成了,很多内容被重复定义了好几次,从而产生编译器错误.简单的解决方法是头文件使用下面的格式:#ifndef __filen...2010-07-17 20:27:36 · 213 阅读 · 0 评论 -
用Valgrind查找内存泄漏和无效内存访问
Valgrind是x86架构Linux上的多重用途代码剖析和内存调试工具。你可以在它的环境中运行你的程序来监视内存的使用情况,比如C语言中的malloc和free或者C++中的new和delete。如果你使用了未初始化内存,在数组末端外设置内存或是忘记释放指针,Valgrind都可以检测出来。尽管Valgrind还可以做其它的工作,本教程仍然集中在如何使用它来发现内存相关错误,因为这也程序员经常出...原创 2010-07-20 09:29:15 · 169 阅读 · 0 评论 -
snprintf与strncpy效率对比
一直以为strncpy效率优于snprintf. 无意中在网上看到snprintf效率大于strncpy,颇感震惊. 网址如下:http://blog.csdn.net/wavemoon/archive/2009/12/06/4952904.aspx后自己编码测试了下,发现情况复杂,并不是如此. 现在帖上我的测试:环境: linux编译器:g++代码:#inclu...原创 2010-07-20 09:31:48 · 494 阅读 · 0 评论 -
关于auto_ptr的忠告
1.auto_ptr不能用于数组,因为它调用的是delete,不是delete[]。 2.auto_ptr上只用于局部,尽可能不要用它共享内存。它的出现是为了防止异常情况下的内存泄露。 3.全局的指针一般来说是用于共享一块内存,你应该在你的程序初始化时初试这快内存,程序运行结束时释放内存,以防止共享失败。使用auto_ptr完全莫名其妙。 4....2010-08-26 16:21:45 · 147 阅读 · 0 评论 -
优秀的框架工具
zookeeperHadoop的子项目,可靠地分布式小文件系统,可以用于分布式环境的同步、配置等。protobufGoogle提供的工具,跨平台跨语言跨域的序列化/反序列化工具,可以支持C++/Java/C#等 Action Script: http://code.google.com/p/protobuf-actionscript3/ Action S...原创 2010-09-08 10:13:48 · 82 阅读 · 0 评论 -
log4cxx编译方法
1、下载http://logging.apache.org/log4cxx/ 2、先下载如下源代码包apr-1.3.3.tar.bz2apr-util-1.3.4.tar.bz2apache-log4cxx-0.10.0.tar.gz3、将上述包上传到同一个目录下4、安装APR建议安装在/usr/local/apr或$HOME/apr目录下,安装步骤:tar xjf apr-1.3.3...原创 2010-09-08 10:30:40 · 127 阅读 · 0 评论 -
C++静态成员与静态成员函数小结
类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有...原创 2010-09-16 15:48:25 · 96 阅读 · 0 评论 -
小对象的分配技术
小对象分配技术是Loki提高效率的有效途径,Loki里广泛使用小对象, 如果使用系统默认分配器,因为薄记得缘故,可能代价在400%以上,所以这个是必须要解决的问题。我们首先来谈Chunks。1.MemControlBlock结构struct MemControlBlock { bool available_; MemControlBlock* prev_...原创 2011-03-21 12:01:14 · 249 阅读 · 0 评论