今天看自己上次写的代码, 发现一个错误.
.c中函数名写成: int func(uint32_t blen);
但在头文件中写成: int func(uint32_t bufsz);
gcc 编译器没有报错误, 什么问题也没有, 运行也正常, 看来编译器对函数的声明中的参数不会去检查参数名, 会检查参数数据类型.
------------
上次在windows下不小心把printf("%s, %d\n", d1, d2);
其中d1, d2全部为int类型, 编译时候cl.exe编译器也没有报错误, 运行起来就直接段错误. gcc编译会报错误的.
------------
当然, 上面哪些问题应该设置编译器编译参数对检查会更严格些, 如: gcc 中的-wall.
阅读(1715) | 评论(0) | 转发(0) |