Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MSVCRT:sin,cos等人的实现(源代码)在哪里? 我想知道在Visual C++ CRT中,基本三角函数的实现在哪里?< /P>_C_Visual Studio_Visual C++_Msvcrt - Fatal编程技术网

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源代码吗?