[英]unsigned char pointer in C#?
在將某些代碼從C ++轉換為C#的過程中,我發現了這一點,
unsigned char *p = m_pRecvBuffer + 5;
unsigned int noncelen1 = *p * 256 + p[1];
如何將其轉換為C#? m_pRecvBuffer
是一個字符數組,但是我將其存儲為字節數組。
您可以分析代碼實際執行的操作,並轉換行為,而不是代碼。 盡管您可以在c#中使用unsafe
方法和指針算術,但這可能會產生比解決的問題更多的問題。
類似於
byte[] p = new byte[m_pRecvBuffer.Length - 5];
Array.Copy(m_precvBuffer, p, m_pRecvBuffer.Length - 5);
uint noncelen1 = p[0] * 256 + p[1];
但是在那種情況下,我認為您實際上不需要使用數組副本。 只是使用
uint noncelen1 = p[5] * 256 + p[6];
我想應該就足夠了。
假設RecvBuffer被聲明為byte [],您將執行以下操作:
int noncelen1 = RecvBuffer[5] * 256 + RecvBuffer[6];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.