2017年12月27日 星期三

[C++] Coding convention - prefix k and What


  • trace Android code時, 常會看到如下的 code
  •     enum {
            kWhatSetDataSource              = '=DaS',
            kWhatPrepare                    = 'prep',
            kWhatSetVideoSurface            = '=VSu',
            kWhatSetAudioSink               = '=AuS',
            kWhatMoreDataQueued             = 'more',
            kWhatConfigPlayback             = 'cfPB',
            ...
    
  • 這個 k代表什麼意思呢? => konstant, 因為 c的 prefix 已經被 char 用掉了, 用了 Germany的 konstant, 至於全大寫與 Hungarian notation 就不在這戰了
  • 至於 What, 則猜測這些 enum 主要是用來在 message中傳遞, 對應 message.what 的 int值, 所以在 handler中常會看到自行定義的 enum 用 kWhat當 prefix
    • 節錄 Android doc Message.what
    • what
      int what
      User-defined message code so that the recipient can identify what this message is about. 
    • Each Handler has its own name-space for message codes, 
      so you do not need to worry about yours conflicting with other handlers.
  • Reference:

沒有留言:

張貼留言