gpt4 book ai didi

c# - 将 "const float *"从 C++ 翻译成 C#

转载 作者:行者123 更新时间:2023-11-27 23:23:15 25 4
gpt4 key购买 nike

如何将此 C++ 代码片段转换为 C#?

void fm_getAABB(..., const float *points, ...)
{
// ...
const unsigned char *source = (const unsigned char *) points;
//...
const float *p = (const float *) source;
//...
}

我已经尝试使用 C++ to C# converter , 但它似乎也无法翻译。

编辑:
这是整个函数:

void fm_getAABB(unsigned int vcount, const float *points, unsigned int pstride,
float *bmin, float *bmax)
{
const unsigned char *source = (const unsigned char *) points;

bmin[0] = points[0];
bmin[1] = points[1];
bmin[2] = points[2];

bmax[0] = points[0];
bmax[1] = points[1];
bmax[2] = points[2];

for (unsigned int i = 1; i < vcount; i++)
{
source+=pstride;
const float *p = (const float *) source;

if ( p[0] < bmin[0] ) bmin[0] = p[0];
if ( p[1] < bmin[1] ) bmin[1] = p[1];
if ( p[2] < bmin[2] ) bmin[2] = p[2];

if ( p[0] > bmax[0] ) bmax[0] = p[0];
if ( p[1] > bmax[1] ) bmax[1] = p[1];
if ( p[2] > bmax[2] ) bmax[2] = p[2];
}
}

最佳答案

一种选择是使用 C# 的不安全模式按原样进行翻译。 C# 完全能够通过少量修改运行此代码。例如,您需要删除 const 修饰符。

如果您设法生成一个仅限托管的版本,那当然更好。但尚不完全清楚这是否可能:您的函数正在执行某些可能导致未对齐访问的指针操作。无法使用仅托管功能以未对齐的方式访问托管阵列。

关于c# - 将 "const float *"从 C++ 翻译成 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11313947/

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