Welcome to Snooda's Blog
    今天程序出了一个core,是strcmp的时候有一个参数没有判断为NULL导致的,当我编写了一个小程序:

引用
#include
int main()
{
strcmp(NULL, "“);
return 1;
}

测试的时候发现程序跑的毫无问题。
编译参数是gcc -g -O0,没有开任何优化。

gdb进去后发现strcmp根本没有被执行,改成int a = strcmp(NULL, "");后,出core了。

看来编译器默认还是提供一定优化的。

另外需要注意strcmp不会检查参数(效率考虑),所以需要自己检查。
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]