这里为什么不报重定义异常

这里为什么不报重定义错误?下面的sin为什么没与库中的冲突呢?#include math.h#includeiostream.hdoubl

这里为什么不报重定义错误?
下面的sin为什么没与库中的冲突呢?

#include <math.h>
#include<iostream.h>

double __cdecl sin( double _X) //这里不会与库中的sin冲突. 

return 1.0; 


void main ()
{
  cout<< sin(1.0) <<endl;
}

[解决办法]
math.h

里的声明和你不一样

是这样的

inline long double __CRTDECL sin(__in long double _X)


如果你改成

inline long double __CRTDECL sin(__in long double _X)
{
return 1.0;
}

就重定义了