linux下编程的时候有时候调用了某个函数,编译的时候没有错误也没有警告,但是最后发现运行结果不对,最后才发现原来是头文件没包含。
这样的坑遇到过三次了,每次都要跟踪很久才找到原因,下面列出我这三次的具体情况:
1. 使用atoi函数必须要包含stdlib,否则调用atoi函数转换出来的结果不对
2. 使用sin函数必须要包含math.h,否则调用sin函数的运算结果不对
3. 使用write最后一个参数没穿,但是编译没有错误也没有警告,函数必须要包含unistd.h,否则就给你胡写
以上三次是具体的经历,总结都是因为使用了某个函数但是编译没有错误也没有警告,最后运行结果不对,这应该是linux下的某个特性,暂时先记录下来,等有空了再研究研究。