我正在将一些 C++ 代码翻译成 C#,并看到了以下定义:
#define x 'liaM'
首先,这个单引号常量意味着什么?我需要在c#中将其转换为字符串常量吗?
其次,在C ++中,这个常量被赋值为一个uint变量的值。它是如何工作的?
uint m = x;
我正在将一些 C++ 代码翻译成 C#,并看到了以下定义:
#define x 'liaM'
首先,这个单引号常量意味着什么?我需要在c#中将其转换为字符串常量吗?
其次,在C ++中,这个常量被赋值为一个uint变量的值。它是如何工作的?
uint m = x;
这有时被称为FOURCC。有一个Windows API可以将字符串转换为FOURCC,叫做mmioStringToFOURCC,以下是相应的C#代码:
public static int ChunkIdentifierToInt32(string s)
{
if (s.Length != 4) throw new ArgumentException("Must be a four character string");
var bytes = Encoding.UTF8.GetBytes(s);
if (bytes.Length != 4) throw new ArgumentException("Must encode to exactly four bytes");
return BitConverter.ToInt32(bytes, 0);
}
BitConverter.ToInt32(char[] { 'l', 'i', 'a', 'M' });
跳过字符串呢? - Ben Voigtbyte[]
。 - Ben Voigt