• 2011-06-15

    realloc陷阱 - [C/C++]

    原型void *realloc(void *ptr, size_t size);

    1. 参数ptr和size均不为0,重新调整内存大小,并将新的内存指针返回,并保证最小的size的内容不变;
    2. 参数ptr为NULL,但size不为0,那么行为就等于malloc(size);
    3. 参数size为0,则realloc的行为为free(ptr);
    4. ...
  • C++中的类型查找过程相对简单,基本上就是名字查找,这里不再介绍。

    对于 .cpp 文件中调用的一个函数 ( 或成员函数 ), 编译器主要做了下面三件事情 :

    1 名字查找 . 先在所在编译单元中可见名字实体中进行名字查找 .(1) 类成员函数优先 ( 对象所在的类 -> 基类 )...

  • ~classname()
    {
        if ( __uncaught_exception() )
        {
             try
              {    
         &n...

  • 转载:http://blog.csdn.net/Code_GodFather/archive/2010/07/04/5711933.aspx

    1. 64bit操作系统的重定向机制以及目的
       在64bit操作系统中,为了无缝兼容32bit程序的运行,64bit的Windows操作系统采用重定向机制。目的是为了能让32bit程序在 64bit的操...
  • 2011-05-05

    工程配置 Inline - [C/C++]

    Inline Function Expansion:
    Only __inline(/Ob1)  有声明inline的才inline
    Any Suitable(/Ob2)  有声明inline或者短函数 都inline
  • 尾调用:提高效率和节省空间,具体怎样才算是一个尾调用,请看LUA程序设计

    昨晚DK服务器发现lua一个错误使用“尾调用”方式:比如
    (1)
    function a()
    ...
    return a()
    end

    a() --这样的尾调用(即:又调用自己),没终止条件,会使用LUA死循环,这样的写法和wh...

  • 在lua中默认是nil false才为假,这个和c/C++中的0也为假,不一样,造成在C/C++程序员在编码LUA C接口 不方便。可以通过修改使其达到对0或空字符串都认为是假。

    具体做法:

    在lobject.h下找l_isfalse宏

    原先:#define l_isfalse(o) (ttisnil(o) || (ttisboolean...

  • 2011-01-31

    禁止新增全局变量 - [LUA]

    禁止新增全局变量 用这个方法可以禁止LUA  误把local写成全局而造成“逻辑”的内存泄漏,即对应用层来说,根本没用,但是LUA GC 不知道的泄漏,这个和C/C++所谓的泄漏是两码事。

    方法:

    设置全局表(_G)的元表的__newindex方法。

    globalmt = {};
    gl...

  • 转载:http://blog.csdn.net/1fei/archive/2009/03/08/3970023.aspx

    阅读代码时,可以从singlestep开始
    如果是使用GC,可以从lua_gc开始
    内部机制:当前使用内存达到了垃圾回收的内存上限时,就表示需要垃圾回收了GCthreshold totalbytes;
    一直奇怪局部变量怎么垃圾...

  • 2010-12-31

    C++PImpl作用 - [C/C++]

    PImpl (private implementation) 其主要作用是解开类的使用接口和实现的耦合。

    例子:

    头文件中:

     1 class CSample
     2 {
     3 private:
     4     class CImpl;
     5   &nb...