C/C++单出口函数的写法

如果一个函数有多个出口(return),在函数内进行加解锁操作就会比较繁琐。万一在某个出口处忘记解锁,就为死锁做了准备。

为避免此类问题,最好让函数只有单一的出口:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int Example()
{
    int cond = 0;

    ... ...

    if (1 == cond) {
        return ERR_1;
    }

    ... ...

    if (2 == cond) {
        return ERR_2;
    }

    ... ...

    if (3 == cond) {
        return ERR_3;
    }

    ... ...

    return SUCCESS;
}

第一种写法 ...


基于对象与面向对象

基于对象(Object-Based):以对象作为基本单位,但对象之间并不会发生关系。一个基于对象构建的系统就像是一系列孤立对象的集合体 ...


处理C字符串时应该注意到的

字符串是一系列字符的有序排列,一个挨着一个排成一串。若要对一个存放在内存中的字符串进行处理,需要知道其首个字符所在的内存地址和其边界。

对于边界的描述,容易想到的有两种方式:一是在字符串中给出该字符串的长度,知道了长度就可得出边界,像这样:

二是在字符串尾部加一个特殊的字符作为标记,只要看到这个字符,就可认定已经到达了字符串的边界,像这样:

这个字符应是不可打印的,以免与真正需要处理的那部分字符想混淆。

C语言使用的是第二种方法,它用ASCII码为0的字符(’\0 ...