【问题标题】:Does VC++ support _mm_malloc?VC++ 支持 _mm_malloc 吗?
【发布时间】:2010-07-22 06:28:00
【问题描述】:

Visual Studio C++ 2008/2010 是否正式支持_mm_malloc?它在malloc.h 中定义,但我在 MSDN 库中找不到它的描述。

【问题讨论】:

    标签: c++ visual-c++ memory-management memory-alignment


    【解决方案1】:

    没有直接回答您的问题,但我认为您应该使用_aligned_malloc。如果我的理解是正确的,_mm_malloc 是针对英特尔编译器的。

    【讨论】:

    • _mm_malloc 受 gcc 支持,_aligned_malloc 不支持。微软编译器似乎也支持它,但我找不到任何关于它的官方文件。
    • 它似乎没有得到官方支持,msvc“实现”只是#define _mm_malloc(a, b) _aligned_malloc(a, b)所以这几乎只是你是否想依赖MS而不改变它的问题(一个很好的假设是他们会保留它),或者在您为 windows 编译时提供类似的定义。
    • 需要注意的是_aligned_alloc NOT C11/C++11 aligned_alloc : 参数倒置,_aligned_alloc 与@987654330 不兼容@.
    【解决方案2】:

    在 Visual Studio 2013 中使用 <malloc.h> 标头支持_mm_malloc/_mm_free

    【讨论】:

    • “使用标头” - 哪个标头?
    • @Robinson 问题中的那个:<malloc.h>
    【解决方案3】:

    【讨论】:

    • 我知道如何手动实现对齐。问题不在于它。第一个链接也与我的问题无关。
    • 我明白了 - 我误解了你的问题。
    • @EmeryBerger 感谢您提供第二个链接。
    【解决方案4】:

    <malloc.h> 中的 memalign() 不能解决这个问题吗?手册页说它已经过时了,但是...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 2021-03-19
      • 2015-02-15
      • 2012-01-21
      • 2021-05-30
      相关资源
      最近更新 更多