警告:多字符字符常量[-Wmultichar]

时间:2014-05-13 14:04:18

标签: c wchar-t

我想要一个希腊字母数组,这就是我所做的:

wchar_t pcletters[30] = {'α' , 'ά' , 'β' , 'γ' , 'δ' , 'ε' , 'ζ' , 'η', 'θ' , 'ι' , 'κ' , 'λ' , 'μ' , 'ν','ξ' , 'ο' , 'π' , 'ρ' , 'σ' , 'τ' , 'υ' , 'φ' , 'χ' , 'ψ' , 'ω', 'έ' , 'ή' , 'ί' , 'ό' , 'ύ' , 'ώ'} ;

我还包含<locale.h>并有一行setlocale(LC_CTYPE, "") .

然而我收到警告警告:多字符字符常量[-Wmultichar]。 此外,当我通过执行以下操作检查其中一个字母是否在用户输入中时:

if (userword[i] == pcletters[j]) {//do stuff} 

它似乎不起作用。 - 为什么我会收到这个警告? - 有没有办法以一种能够比较的方式改变pcletters userword[i] == pcletters[j]

注意:userword的定义如下:wchar_t userword[40]

1 个答案:

答案 0 :(得分:6)

使用宽字符文字:

wchar_t pcletters[30] = {L'α' , ...
                         ^

请注意,这仅适用于您所写的字母是单个宽字符的平台;这应该适用于Windows,其中wchar_t是UCS-2。

相关问题