有人可以帮我理解 C 中多字节字符常量的实际用法吗?
我看到下面的代码运行得很好,我想了解这个语言功能的实际用法是什么。 (我知道定义它们是标准 C;但是访问它们不符合标准)。有人向我指出这些多字节字符常量在 Classic MacOS 等平台上很有用,但他们未能提供示例。
#include <stdio.h>
int main() {
(void) 'this'; // this seems to be standard conformant
// but what can we do with this "feature"?
// This compiles and runs just fine, but is a crude hack:
long i = 'this';
const char* u = (const char*) &i;
const unsigned z = sizeof(long)/sizeof(char);
printf("%u\n", z);
for(unsigned v = 0; v < z; v++)
{
printf("%c\n", (char)u[v]);
}
return 0;
}
我可以给你一个我使用它们的例子:
switch (code) {
case 'pu':
...
case 'pd':
...
case 'pa':
...
case 'pr':
...
...
}
这是绘图仪使用的 HPGL(惠普图形语言)解析器的一部分。
下次我们升级编译器时,新编译器拒绝了该代码,或者编译后的二进制文件无法按预期工作,我不记得是哪一个,所以我们必须重写它。
结论:不要使用它们,它们没有用。 :)