我正在開發一個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