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