C 多字节字符常量的实际用法

问题描述 投票:0回答:1

有人可以帮我理解 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;
}
c char multibyte-characters
1个回答
-1
投票

我可以给你一个我使用它们的例子:

switch (code) {
    case 'pu':
        ...
    case 'pd':
        ...
    case 'pa':
        ...
    case 'pr':
        ...
    ...
}

这是绘图仪使用的 HPGL(惠普图形语言)解析器的一部分。

下次我们升级编译器时,新编译器拒绝了该代码,或者编译后的二进制文件无法按预期工作,我不记得是哪一个,所以我们必须重写它。

结论:不要使用它们,它们没有用。 :)

© www.soinside.com 2019 - 2024. All rights reserved.