c - 以宽字符作为索引的全局 C 数组

标签 c encoding setlocale

当我使用非ascii字符来定义全局数组时,例如:

const char table[] = {[L'č'] = 'c', ...}; 

所以 C 可以处理这样的情况:我更改语言环境,然后通过这些索引访问数组? 这是如何编译的?因为'č'在不同的编码中具有不同的值。

最佳答案

编译器应将源代码中的字符从源代码编码转换为在编译时选择的执行宽字符集。这些值将是常量,具有该编码中该字符的整数值。调用 setlocale() 不会对值产生任何影响。

关于c - 以宽字符作为索引的全局 C 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8314831/

相关文章:

c - 链表与图

python - 如何在 Windows 中更改 python 中的语言环境?

php - 如何在PHP数组排序中使用多个sort_flags(使用SORT_LOCALE_STRING,SORT_NATURAL)?

python - 使用 ctypes 时释放内存

我可以确定该类型是否是 C 中的指针类型吗?

python - 如何打开包含 utf-8 非编码字符的文件?

python - 如何将字符集损坏的字符串恢复为 unicode?

json - JSON REST Web API 的文本编码标准是什么?

c++ - std::locale::global 对 printf() 函数有影响吗?

c - 在 C 中使用指针循环遍历结构元素