水下功夫做透,水上才能顺风顺水。

值得一记的常见错误

1.企图用memcpy做memset的活。

void *memcpy(void *dst, const void *src, size_t n);//从一个地方拷贝到另一个地方。

void *memset(void *dst, int ch, size_t n);//给一个地方赋值。

此时memcpy会把值当作地址处理,导致运行错误。

2.switch...case用法错误。

switch(operType)

{

//此处任何操作都不会被执行,而是直接跳过。

case 1:

int i = 0;//在此次定义必须加{}

语句;

}

3.解码错误

在形参长度和获得长度不一致的情况下,

输入变量的长度必须和解码函数内获得的长度一致,

而不是和解码函数的形参长度一致。

4.对于.c文件,或由.pc生成的.c文件。

(1)所有的语句都不能放在变量的定义(包括.pc文件中宿主变量的声明)的前面。

(2)所有的变量的定义都必须紧跟着{,作用域止于}。

5.全局变量在.c文件中定义(它处声明),不要在.h文件中定义。

否则在两次及其以上引用该.h文件会引起变量的重定义。

6.全局变量不能跨工程使用,但可以通过函数调用将值传递过去。

7.嵌套式map等,要用空格隔开。例如 map<int, map<string,string>空格>

如果不隔开,在linux会报编译错误,windows下不会报错。

8.linux编译不允许有重复的文件(印象)。

 

posted @ 2015-03-12 13:51  北方寒士  阅读(137)  评论(0编辑  收藏  举报