• 2011-10-18

    入乡随俗

    Tag:
    接触2、3个月的C/C++,感觉以前学的那点皮毛真的比较肤浅。经常被一些bug惊得汗颜。没办法,从C#、JAVA走过来的,必须经历一段入乡随俗的“倒时差”,游戏规则改了。再也不能毫无顾虑的勇往直前了,否则怎么死都不知道。

    在C里面最容易出问题的莫过于内存的管理了,内存的管理远没有“谁创建、谁销毁”这么简单;今天在写代码的过程中就遇到了一个诡异的问题,最终在LW的帮助下,才发现罪魁祸首竟然是数组越限。一个对象内的方法的局部数组变量越限导致这个对象的地址被无意中改了,于是看到的...
  • 2011-08-03

    栈和堆(转)

    Tag:
    一、堆和栈的区别

    1、预备知识—程序的内存分配

    一个由c/C++编译的程序占用的内存分为以下几个部分
    1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
    2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
    3、全局区(静态区)(...
  • 2011-07-28

    写给自己看的blog - [生活感想]

    Tag:

    半瓶水,晃荡了这几年。其实真的一点都不可乐;决心一沉到底,追随自己的兴趣。因此有必要改一改我的博客名了。告别彷徨,告别迷茫,告别半瓶可乐。十年认识江湖,十年磨一剑!

  • CppUnit配置好后,可以进行简单的应用了:

    CppUnit将所有的单元测试按照树的结构来表示。在CppUnit中,最小的测试单元,称为TestMethod测试方法,而多个相关的测试方法又可以组成一个TestCase测试用例。多个测试用例又组成TestSuite测试包。

     

    MathTest.h

    #include "cppunit/extensions/HelperMa...

  • 2011-07-21

    vc6.0下CppUnit安装 - [C_C++]

    Tag:cppunit

    (引自:http://blog.csdn.net/casualgame/article/details/332153)

    VC6.0下面如果想做TDD,并没有Java、.Net这么方便,不过还是可以做到的,用CppUnit即可;Gtest好像不支持VC6;

    下面对google到的CppUnit在VC6下的配置及使用做简单的记录:

    1、编译和安装CppUnit

    从http://voxel.dl.sou...

  • 1、#define保护

    所有头文件都应该使用 #define 防止头文件被 多重包含( multiple inclusion ) ,命名格 式
    当是: _ _ _H_
    为保证唯一性,头文件的命名应基于其所在项目源代码树的全路径。例如,项目 foo 中的 头文件 foo/src/bar/baz.h 按如下方式保护:


    #ifndef FOO_BAR_BA...

  • 什么是对齐,以及为什么要对齐?

            现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。
    对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地...

  •  

    引自:http://www.cnblogs.com/txwsh1/archive/2008/03/06/1093335.html

    一、 在字符串前加一个L作用:
       如  L"我的字符串"    表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。

    strlen("asd...

  • 2011-07-08

    #pragma once与 #ifndef的区别 - [C_C++]

    Tag:

    C++中为了避免同一个文件被include多次,一般都会在头文件的头部添加防止重复包含的预编译命令:

    #ifndef

    #pragma once



    这两种方式究竟有什么区别呢?

    方式一:

        #ifndef __SOMEFILE_H__
        #define _...

  • 在OCP复习的过程中,对自己的知识漏洞进行记录和学习;

    【SQL】

    1、like 的使用

    针对包含‘_’的字段进行查询,例如查询firstname为‘S_’开头的雇员:

    1: select * from EMPLOYEES 2: where first_name like 'S\_%' ESCAPE '\' ‘_’标示单个字符,所以包含字符‘_’的条件...

  • 转自:http://space.itpub.net/?uid-7607759-action-viewspace-itemid-22306

    一、日期及时间

    格式串 说明及示例

    ---------- -----------------------------------------------------------

    -/,.;: 指定返回字串分隔符

    例如:
    ...


  • 【9】结语

    这个系列讨论了Twitter架构设计,尤其是cache的应用,数据流与控制流的组织等等独特之处。把它们与抗洪抢险中,蓄洪,引流,渠道三种手段相对比,便于加深理解。同时参考实际运行的结果,验证这样的设计是否能够应付实际运行中遇到的压力。

    解剖一个现...


  • 【8】 得过不且过

    北京西直门立交桥的设计,经常遭人诟病。客观上讲,对于一座立交桥而言,能够四通八达,就算得上基本完成任务了。大家诟病的原因,主要是因为行进路线太复杂。

    当然,站在设计者角度讲,他们需要综合考虑来自各方面的制约。但是考虑到世界上立交...

  • 【7】作为一种进步的不彻底

    不彻底的工作方式,对于架构设计是一种进步。

    当一个来自浏览器的用户请求到达Twitter后台系统的时候,第一个迎接它的,是Apache Web Server。第二个出场的,是Mongrel Rails Server。Mongrel既负责处理上传的请求,也负责处理下载的请求。Mongrel处理上传和下载的业务逻辑非常简洁,但是简洁的表象之下,却蕴含着反常规的设计。这种反常规的设计,当然不是疏忽的结果,事实上,这正是Twit...


  • 【6】流量洪峰与云计算

    上一篇历数了一则短信从发表到被阅读,Twitter业务逻辑所经历的6个步骤。表面上看似乎很乏味,但是细细咀嚼,把每个步骤展开来说,都有一段故事。


    国年度橄榄球决赛,绰号超级碗(Super Bowl)。Super
    Bowl在美国的收视率,相当于中国的...