MSVCRT:sin,cos等人的实现(源代码)在哪里? 我想知道在Visual C++ CRT中,基本三角函数的实现在哪里?< /P>
在MSVCRT:sin,cos等人的实现(源代码)在哪里? 我想知道在Visual C++ CRT中,基本三角函数的实现在哪里?< /P>,c,visual-studio,visual-c++,msvcrt,C,Visual Studio,Visual C++,Msvcrt,在C:\Program files(x86)\Microsoft Visual Studio 9.0\VC\crt中的文件中查找“sin”的定义显示了math.h中的定义,但仅此而已(除了在某些def文件的导出部分中提及) 就我所知,sin不是编译器将自身翻译为机器代码的关键字。因此,必须在某个地方有一个实现,即使该实现可以归结为一些直接的汇编代码 我错过了什么?科兹在哪里 编辑:显然,我不够清楚:我在寻找源代码,而不是编译的lib或dll它在libc中。如果您是静态构建的,则它位于libc.l
C:\Program files(x86)\Microsoft Visual Studio 9.0\VC\crt
中的文件中查找“sin”的定义显示了math.h
中的定义,但仅此而已(除了在某些def文件的导出
部分中提及)
就我所知,sin
不是编译器将自身翻译为机器代码的关键字。因此,必须在某个地方有一个实现,即使该实现可以归结为一些直接的汇编代码
我错过了什么?科兹在哪里
编辑:显然,我不够清楚:我在寻找源代码,而不是编译的lib或dll它在libc中。如果您是静态构建的,则它位于libc.lib中。如果您是动态构建,那么它在msvcrt.dll中它在MSVCR90.dll中:
C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_...>dumpbin /exports msvcr90.dll | findstr sin
74 48 0007ABA0 _CIasin = __CIasin
84 52 0007B5C0 _CIsin = __CIsin
85 53 0007AF38 _CIsinh = __CIsinh
159 9D 000236AB __get_flsindex = ___get_flsindex
160 9E 000236AB __get_tlsindex = ___get_flsindex
177 AF 0007CE73 __libm_sse2_asin = ___libm_sse2_asin
178 B0 0007D2C1 __libm_sse2_asinf = ___libm_sse2_asinf
192 BE 0007FE7C __libm_sse2_sin = ___libm_sse2_sin
193 BF 00080039 __libm_sse2_sinf = ___libm_sse2_sinf
696 2B7 0002E27A _mbsinc = __mbsinc
697 2B8 0002E24E _mbsinc_l = __mbsinc_l
1211 4BA 0007AB60 asin = _asin
1349 544 0007B580 sin = _sin
1350 545 0007AF20 sinh = _sinh
更新:
没有提供源代码。在提供的CRT源代码中提供函数的库似乎位于CRT\src\intel\mt_lib\tran.lib
:
C:\...\crt\src\intel\mt_lib> lib /list tran.lib
: : :
f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\build\INTEL\mt_obj\_sincosf_sse2_.obj
f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\build\INTEL\mt_obj\_sincos_sse2_.obj
f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\build\INTEL\mt_obj\_sinf_sse2_.obj
f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\build\INTEL\mt_obj\_sin_sse2_.obj
f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\build\INTEL\mt_obj\_tanf_sse2_.obj
f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\build\INTEL\mt_obj\_tan_sse2_.obj
: : :
下次你想知道的时候:使用函数构建一个exe/dll,然后使用Dependency Walker找出答案。这是必备工具。或者像Mark showed那样使用Dumpbin。@stijn:depends.exe不显示源代码!MicrosoftC运行时不是开源的,但下面是GNUC运行时的数学头实现:尽管大部分安装在我提到的目录中。显然不是全部。微软从英特尔购买了它,但没有获得重新发布源代码的权利。谢谢你的回答,但我在寻找源代码,而不是编译后的代码。谢谢你的回答,但我在寻找源代码,不是编译的code@Serge-愚蠢的问题:你安装了CRT源代码吗?