首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/699286

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

为clang添加中文关键字

知乎原文地址 作者:@狗屎咖啡 以clang为基础做了一个与C++、C兼容中英文关键字的编译器 swizl/cnlang 原理就是加与英文关键字等效的中文关键字 在/include/clang/Basic/TokenKinds.def 中 用ALIAS添加中文关键字 例如 KEYWORD(char, KEYALL) ALIAS("字", char, KEYALL) 在 /lib/Basic/IdentifierTable.cpp 中 加个头文件 #include "llvm/ADT/StringSwitch.h" 在 tok::PPKeywordKind IdentifierInfo::getPPKeywordID() const 里 用 llvm::StringSwitch 添加 中文宏 例如 //default: return tok::pp_not_keyword; default: return llvm::StringSwitch<tok::PPKeywordKind>(Name) .Case("如", tok::pp_if) .Case("定义", tok::p...

如何使GCC支持中文(utf-8)的变量名、函数名?

知乎原文地址 作者:@狗屎咖啡 目前VS 和Clang都是支持utf-8的变量名、函数名,但 GCC不支持。 有人提意见,提了好几年了:UTF-8 support for identifier names in GCC GCC并没有解决,但官方给了一个解决方案:FAQ - GCC Wiki 就是用这样一条脚本语句转换一下源文件 perl -pe 'BEGIN { binmode STDIN, ":utf8"; } s/(.)/ord($1) < 128 ? $1 : sprintf("\\U%08x", ord($1))/ge;' 这条语句的意思是将源文件按utf-8读取出来,大于128的unicode(不在ASCII里)都用16进制的Uxxxxxxxx的格式替代。 这种格式叫UCN。 实际上gcc内部还是将UCN转换成utf-8字符串,再加到符号表。却不支持原生的UTF-8符号,这个就有点搞笑了。 虽然有人会说,C、C++的标准里没有对UTF-8符号的支持,GCC不支持UTF-8符号是符合标准的。但是GCC从来就不是死守标准的乖宝宝对吧,加了不少扩展了。为啥这个不能扩展一下呢?...

相关文章

发表评论

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册