1
我正在处理一些日文C代码,它在Shift-JIS中打印文本。在原始代码中,文本以字符串文字直接以假名书写。在我希望使用UTF-8的编辑器中,它显示为无稽之谈。C:编写一个宏来建立字符串转义序列
特别是,此代码喜欢使用英文字母的“大”版本:http://www.rikai.com/library/kanjitables/kanji_codes.sjis.shtml \ x82 \ x60 = A(一个大的“A”,ASCII为\ x41)。我以为我会写一个CPP宏转换那些从ASCII,如:
#define LARGE_LETTER(x) "\x82\x" (x+31)
但很明显,这个宏完全不是那么回事,我不知道如何使它发挥作用,如果它甚至可能。你能建立像这样的字符串转义序列吗?
这可能是最实用的方法,但我没有看到包装宏中的任何价值 - 只是直接使用定义;请记住,这些可以放入一个头文件中,并使用您选择的脚本语言自动生成。 – Christoph 2014-09-27 09:11:38
@Christoph'PRIMITIVE_CAT'允许您组合宏。例如,返回'A'-'Z'的宏可以与'LARGE_LETTER':'LARGE_LETTER(A_LETTER_SET_ELSEWERE())'结合使用。它使它更灵活一点。 – 2014-09-27 11:30:56
“每个字母一个定义”方法就是我希望避免的那种重复。我想可能没有其他选择了? – Rena 2014-09-28 01:57:50