在 C(使用 gcc)中,是否可以使用 4 char [az] “literal”(例如 "enus"/{'e','n','u','s'}/... )作为一个 uint16_t ?
我希望能够在我的代码中直接使用 4 字符语言环境(例如 'en-us',但 'enus' 也可以,因为 '-' 是多余的 afaik)作为无符号 16 位整数直接在我的代码中使用运行时开销。
例如,'en-us' 可以映射到 (('e' - 96) << 12) | (('n' - 96) << 8) | (('u' - 96) << 4) | ('s' - 96)。(这只是一个例子,我可以使用任何至少保持值 0 不变的映射/算法(用于检测“无设置”))
任何解决方案都不需要是可移植的(WRT 字节序等),但应该没有实际使用 uint16_t 的运行时开销。
非常感谢你!
PS:随意为问题添加更多标签,不知道除了“c”之外还能使用什么。谢谢。