C/C++中 size_t 与C#中类似的类型定义
来源:互联网 发布:2017美剧推荐 知乎 编辑:程序博客网 时间:2024/06/05 16:25
在c/c++中,关于size_t,通常情况下,32位程序中就是unsigned int,64位中就是unsigned long long。
但是如果函数跨语言封装中用到了size_t则是一个不怎么美好的事情了,比如C#中并没有对应的可变类型定义,当然你可以直接用using指明使用那种类型代替size_t,如:
#if WIN32 using size_t = System.UInt32;#else using size_t = System.UInt64;#endif
可以看出来这并不那么美观…,而且还得定义条件编译符号。所以,有些开源项目中的size_t使用了System.UIntPtr来代替,那么System.UIntPtr有什么特殊之处呢,查看.net frame work的源码
http://referencesource.microsoft.com/#mscorlib/system/uintptr.cs,f8f01749ea279a65
可以看到,实际上也是使用了条件编译,但用起来相对简单些不是吗
using size_t = System.UIntPtr;
感兴趣的也可以看下这两篇的讨论
https://bytes.com/topic/c-sharp/answers/458667-interop-size_t
https://stackoverflow.com/questions/12966283/how-to-marshal-size-t-cross-platform-using-semantic-types
阅读全文
1 0
- C/C++中 size_t 与C#中类似的类型定义
- C.C++ 中 size_t
- C语言中size_t的陷阱
- C/C++中size_t 的用法
- c 语言 size_t 类型
- C#中类似c和c++语言的#define用法
- C中变量的声明与定义
- C语言中size_t和size_type 的区别
- c++: size_type与 size_t
- 规范工程中c/c++变量类型的定义
- C语言中用户定义类型(typedef)的作用
- c语言中用户定义类型(typedef)的作用
- c语言中枚举类型变量定义
- C语言中没有定义bool类型
- C++/C宏定义中##与#的含义
- C++/C中定义与声明的区别
- C#调用C++dll,C++中char*与C#类型的对应关系
- C语言中的size_t类型
- 【matlab 播放音乐】教你如何用matlab播放音乐
- 语法求救 ifneq ($(filter aaa bbb ccc, $(Var)),)
- php入门学习-----对象
- mybatis-sql映射文件-CRUD-1
- [YTU]_2441( C++习题 复数类--重载运算符2+)
- C/C++中 size_t 与C#中类似的类型定义
- Math 和 Integer对数的操作方法和
- ajax返回值List转换为json格式数据
- 23种设计模式之模板方法模式
- netcdf数据nc格式数据java解析总结(二)使用java生成.nc格式文件
- Android 如何模拟返回键、菜单键、主页键?
- php入门学习-----接口
- java枚举
- Centos7软件的安装