有人能告诉我这个疯狂的c++语句在c#中是什么意思吗?
Can someone tell me what this crazy c++ statement means in C#?
首先,不,我不是学生…只是一个c#的家伙移植了一个c++库。
这两行疯狂的行是什么意思?它们在c#中相当于什么?我最关心的是size_t和sizeof。不关心static_cast或assert..我知道如何处理它们。
size_t Index = static_cast<size_t>((y - 1620) / 2);
assert(Index < sizeof(DeltaTTable)/sizeof(double));
y是双精度类型,DeltaTTable也是双精度类型[]。提前感谢!
size_t
是一个无符号整数类型的typedef。它用于事物的大小,大小可以是32位或64位。size_t
的特定大小是实现定义的,但它是无符号。
我想在c#中可以使用64位无符号整数类型。
所有sizeof
所做的是返回一个c++类型的字节大小。每种类型占用一定数量的空间,sizeof
返回该大小。
你的代码正在做的是计算DeltaTTable
占用的双精度浮点数(64位浮点数)。从本质上讲,它确保表大于基于y
的某个大小,无论它是什么。
在c#中没有等价的sizeof
,也不需要它。您没有理由将此代码移植到c#。
坏消息是你不能在c#中这样做。没有静态强制转换,只有动态强制转换。不过好消息是,这并不重要。
这两行代码断言索引在表的边界内,这样代码就不会意外地读取一些任意的内存位置。CLR会为您处理这个问题。所以在移植的时候忽略这些行,它们会自动出现在那里。
当然,这是基于基于代码模式的假设。没有关于Y代表什么以及如何使用Index的信息
sizeOf计算DeltaTable类型占用多少内存(以字节为单位)。在c# AFAIK中没有像这样计算大小的等效方法。
我猜size_t应该是c++代码中的struct类型
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 在命名空间名称之前加上 :: 是什么意思?
- 从字符数组的元素中减去'a'是什么意思
- "friend"关键字在C++中是什么意思?
- 减法中的"0"是什么意思?
- 字符数组前面的加号是什么意思?
- 这里的字符串函数是什么意思