このフィールドを考えると:
char lookup_ext[8192] = {0}; // Gets filled later
そして、この声明:
unsigned short *slt = (unsigned short*) lookup_ext;
舞台裏で何が起こっているのですか?
lookup_ext[1669] は 67 = 0100 0011 (C) を返し、lookup_ext[1670] は 78 = 0100 1110 (N) を返し、lookup_ext[1671] は 68 = 0100 0100 (D) を返します。それでも slt[1670] は 18273 = 0100 0111 0110 0001 を返します。
私はこれを C# に移植しようとしているので、簡単な方法以外に、ここで実際に何が起こっているのかも疑問に思っています。C++ を定期的に使用してからしばらく経ちました。
ありがとう!