gpt4 book ai didi

c - 如何防止在 Visual Studio 中从 for 循环到 memset() 的自动优化?

转载 作者:行者123 更新时间:2023-12-04 09:37:09 28 4
gpt4 key购买 nike

我正在开发一个不使用 CRT 的程序,因此,一些使用 memset() 非常天真的实现的第三方喜欢:

char x[10];
for(int i= 0; i< 10; i++) {
x[i] = '\0';
}

在那个 3rd 方库中有很多这种类型的代码,而且,我不喜欢弄乱它,所以,我怎么能阻止 Visual Studio 自动从 for 循环转换为 memset() ?

编辑:为什么这是一个问题?
因为,我的程序不使用 CRT,因此,如果 Visual Studio 自动将 for 循环转换为 memset(),则会导致错误:
Unresolved external symbol _memset

最佳答案

我在 the list of compiler options 中看到的唯一相关编译器选项,除了禁用优化,是 /kernel ,它会生成一个可以在 Windows 内核中运行的二进制文件。那是一把大锤子;它以多种方式改变了编译。为内核构建可能会指示编译器不要使用库例程。然而,the specific page for that switch没有提到它,所以我怀疑开关是否包含它。

鉴于此,我不认为 Visual Studio 具有生成不使用库例程的独立代码的功能。

关于c - 如何防止在 Visual Studio 中从 for 循环到 memset() 的自动优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48676760/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com