Visual c++ 无符号长除法的实现

Visual c++ 无符号长除法的实现,visual-c++,visual-studio-2010,Visual C++,Visual Studio 2010,我可以在哪个文件中找到无符号长除法(ulonglong除以ulong)的实现?(微软VC++2010) 编写一个简单的例行程序进行除法: 在表示a=a/b的行中设置断点 在调试配置中启动程序,当程序在断点处停止时,点击F11进入 现在有两种可能性: 调试器打开一些名为“ulldiv.asm”的汇编程序文件。这意味着您已经安装了CRT源代码,现在您已经阅读了实现 没有发生任何事情或弹出消息。这意味着您没有CRT的源代码,或者您正在编译64位代码,在这种情况下,除法不由库例程处理 假设您使用

我可以在哪个文件中找到无符号长除法(ulonglong除以ulong)的实现?(微软VC++2010)

  • 编写一个简单的例行程序进行除法:

  • 在表示a=a/b的行中设置断点
  • 在调试配置中启动程序,当程序在断点处停止时,点击F11进入
现在有两种可能性:

  • 调试器打开一些名为“ulldiv.asm”的汇编程序文件。这意味着您已经安装了CRT源代码,现在您已经阅读了实现

  • 没有发生任何事情或弹出消息。这意味着您没有CRT的源代码,或者您正在编译64位代码,在这种情况下,除法不由库例程处理


  • 假设您使用默认安装目录,它应该位于以下位置:

    C:\Program Files(x86)\Microsoft Visual Studio 9.0\VC\crt\src\intel\ulldiv.asm

    如果您使用的是32位版本的Windows,则可能是
    C:\ProgramFiles
    ,而不是
    C:\ProgramFiles(x86)
    。尽管有注释,这段代码实际上是用于无符号长除法,而不仅仅是无符号长除法(即,它需要64位操作数,而不是32位操作数)

    我必须检查以确定,但我相信编译器可以/将在启用内部函数时生成分区的内联代码。当然,64位编译器在任何情况下都会生成内联代码

    #include "stdafx.h"
    
    int main()
    {
        unsigned long long a=123;
        unsigned long long b=10;
        a=a/b;
    }