Tag: intptr

为什么/何时使用`intptr_t`在C中进行types转换?

我有一个关于使用intptr_t与long int 。 我发现增加内存地址(例如通过手动指针算术)因数据types而异。 例如增加一个字符指针增加1的内存地址,而增加一个int指针增加4,8为双,16为长双等… 起初,我做了这样的事情: char myChar, *pChar; float myFloat, *pFloat; pChar = &myChar; pFloat = &myFloat; printf( "pChar: %d\n", ( int )pChar ); printf( "pFloat: %d\n", ( int )pFloat ); pChar++; pFloat++; printf( "and then after incrementing,:\n\n" ); printf( "pChar: %d\n", (int)pChar ); printf( "pFloat: %d\n", (int)pFloat ); 它编译和执行得很好,但XCode给我警告我的types转换:“从指针转换为不同大小的整数”。 经过一些谷歌search和结果(后者是一个字吗?),我看到一些人推荐使用intptr_t : #include <stdint.h> […]

什么是一个IntPtr究竟是什么?

通过使用IntelliSense并查看其他人的代码,我遇到了这种IntPtrtypes; 每次需要使用我只是把null或IntPtr.Zero并发现大部分function工作。 究竟是什么以及何时/为什么使用?