当前位置: 技术问答>linux和unix
gcc编译含math.h程序的奇怪现象(并非未添加-lm),盼解
来源: 互联网 发布时间:2016-11-30
本文导语: 大家好, 最近学习linux下编程时发现一个小问题: 一个最简单的main.c程序 #include #include int main() { double a = 4; sqrt(a); return 0...
大家好,
最近学习linux下编程时发现一个小问题:
一个最简单的main.c程序
#include
#include
int main()
{
double a = 4;
sqrt(a);
return 0;
}
如果使用gcc而非g++编译的话,直接使用命令:
#gcc -o a main.c
编译会提示未找到sqrt的定义,这个是因为缺少了“-lm”的原因(如果是g++就不必了);
但是现在,有一种情况直接通过
#gcc -o a main.c
来编译而不报错的情况:即把sqrt(a)改成sqrt(4)!
我思之不得其解,盼高人指教,谢谢
|
编译器直接计算sqrt(4)了,可以看汇编代码,本该调用函数的地方是一个mov
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。