当我使用非ascii字符定义全局数组时,例如:const char table[] = {[L'č'] = 'c', ...}; 所以C处理了这样的情况,即我更改语言环境,然后通过这些索引访问数组?这是如何编译的?因为'č'在不同的编码中具有不同的值。 最佳答案 编译器应将源代码中的字符从源代码编码转换为在编译时选择的执行范围字符集。然后,这些值将是常数,该整数是该编码中字符的整数值。调用setlocale()不会对值产生任何影响。