值得一记的常见错误
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编译不允许有重复的文件(印象)。