Одинарная кавычка в uint в С# - программирование
Подтвердить что ты не робот

Одинарная кавычка в uint в С#

Я переводил код С++ в С#, и я увидел ниже определённый:

#define x 'liaM'

Во-первых, что означает эта одиночная цитированная константа? Я делаю это константой строки в С#?

Во-вторых, эта константа присваивается как значение переменной uint в С++. Как это работает?

uint m = x;
4b9b3361

Ответ 1

Это иногда называют FOURCC. Там есть Windows API, который может конвертировать из строки в FOURCC под названием mmioStringToFOURCC, а здесь некоторый код С#, чтобы сделать то же самое:

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);
}