我在源代码中添加了重音字符,并尝试将它们替换为等效的 unicode。如果我使用实际的非 ascii 字符,程序可以编译并正常工作,但我担心这可能会影响可移植性。当我尝试使用 unicode 等效项时,我收到警告:大小写标签值超出类型的最大值或警告:字符常量对于其类型而言太长,并且在我运行程序时大小写永远不会匹配。
for(int i = 0; i < ent->d_namlen; i++)
{
switch(ent->d_name[i])
{
case 'á' : //0x00E1
...
}
}
ent 是struct dirent *ent
从调用函数传递的。
代替case 'á' :
我已经尝试过case '0x00E1' :
, case L 'u00E1 :
,case \U000000E9 :
并且case '\u00E1' :
我已经尝试了所有没有单引号的情况,在这种情况下它不会编译(例如说 \u00E1 没有在这个范围内声明)。