c++ - 具有链接时代码生成的 MSVC 能否跨 C 和 C++ 进行优化?

标签 c++ c visual-c++

如果link-time code generation (LTCG)正在与 MSVC 一起使用,是否可以跨 C 和 C++ 语言边界优化代码?

例如,C 函数是否可以内联到 C++ 调用程序中?

最佳答案

是的,我刚刚尝试过:

int foo() { return 5; }

在 .c 文件中并且:

extern "C" int foo();
printf("%d\r\n", foo());

在 .cpp 中,反汇编是:

00007FF60F6F3935  mov         edx,5  
00007FF60F6F393A  lea         rcx,[string "%d" (07FF60F727FB4h)]  
00007FF60F6F3941  call        printf (07FF60F701E00h)  

关于c++ - 具有链接时代码生成的 MSVC 能否跨 C 和 C++ 进行优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48030786/

相关文章:

c - 将 double 输入数组时出现问题

c++ - 冒泡排序链表 C++

c++ - 将抽象类实现为本地类?优点和缺点

C:如何构造 if-else 语句

c - 错误: Database is locked when calling sqlite3_exec() from fork() child

c++ - 为什么用整数文字调用重载的 ambig(long) 和 ambig(unsigned long) 会模棱两可?

c++ - 不与任何其他窗口应用程序共享客户区

visual-studio-2010 - 在 VS 2012 (C++) 中编译 Visual Studio 2010 项目 : error LNK2038: mismatch detected for '_MSC_VER' : value '1600' doesn't match value '1700'

c++ - 从 engOpen(..) 启动 matlab,被通知引擎被关闭

c++ - 使用 Word 的 CustomXMLPart 或任何其他支持的方式存储 UTF-8 XML