我正在开发一个GUI框架,我希望所有的元素都可以通过最多8个字符的ASCII字符串来标识(否则7就可以)。快速64位比较
每当一个事件被触发(有些只是点击,但有些是连续的),该框架将回调到编号,并将其值的客户端代码。我可以使用实际的字符串和strcmp(),但我想这是非常快的(对于移动设备),所以我想用char常量(例如int id ='BTN1';),所以你会做一个int比较来测试id。但是,4个字符不够可读。
我尝试了一个实验,一些喜欢 - 长整型ID = L'ABCDEFG“;
...但它看起来好像烧焦常量只能容纳4个字符,而唯一让long int类型的字符常量给你是你4个字符的两倍宽的能力,不具备两倍的字符。我在这里错过了什么吗?
我想很容易让编写客户端代码的人。 gui存储在xml中,所以id从字符串中加载,但是会在客户端代码中写入常量来比较这些常量。
因此,长期和短期的是,我正在寻找一个跨平台的方式来做到快速7-8字符比较,任何想法?
多少万每秒你做比较?不要为它出汗,它的速度足够快。 – 2010-03-02 15:45:30
如果你的目标是给你的组件一个命名方案,不要使用long-char对ascii的支持。 – 2010-03-02 15:47:50
这可能不便携。根据C++标准,多字符文字(多个字符之间的字符)的值是实现定义的。检查你的实现的文档,看看它是否在做你想做的事情,并检查所有可用于实现的实现,看看它们是否都做同样的事情。 – 2010-03-02 16:38:14