多年来不能苟同的两个“良好”的编程习惯.

1、变量使用前一定要初始化.
    例一
        int *p = NULL;

        p = new int[10];    // 既然都一定要给它申请了,前面那个赋NULL是啥意义?纯属多余,同理还有释放的时候。
    例二
        WCHAR filename[MAX_PATH];

        memset(filename, 0, sizeof(filename));
        GetModuleFileName(NULL, filename, sizeof(filename) / sizeof(filename[0]));
        // memset纯属多余, 甚至还有在每次recv之前都memset的,这是典型的字符串思维,会降低程序执行效率。有人还给我解释说如果不memset,那么GetModuleFileName失败之后则得到错误的字符串。这不是瞎扯?为什么不判断GetModuleFileName的返回值呢?微软的例子也经常不初始化不需要初始化的空间。死记一种方法而不是问为什么,不是好方法。

2、逻辑判断的时候常量写在变量前。
    这样的话,如果是比较两个常量呢?比较两个变量呢?那么大脑里面需要记至少两件事。
    A、if (10 == i), 把常量写在前面
    B、if (j == i), 认真写好这个逻辑
    而我没有这个"良好"的习惯的时候, 那么我的大脑里面只需要记一件事,无论常量和变量,只需要“认真写好这个逻辑”。

你可能感兴趣的:(心得)