很多時候,物件有很多屬性,我們可以增刪物件的屬性的支援,這時候,位定義是比較好解決問題的。
我們想加上ws_vscroll屬性的常用寫法
dowrd ws_old = getwindowlonga(hwnd,gwl_style); //獲取目前屬性
ws_old |=ws_vscroll;
或者去掉ws_vscroll屬性
ws_old &=~ws_vscroll;
判斷時候具有ws_vscroll屬性
if(ws_old & ws_vscroll)
用起來十分方便,那麼如何進行位定義呢?
方法一:用enum
enum class window_style: char //大小可以按照需求更改
ws_base=1,
ws_border= ws_base<<2,
ws_dlgframe= ws_base<<3,
ws_vscroll= ws_base<<4,
ws_hscroll= ws_base<<5
優點:型別保護,除錯更清楚
缺點:無法直接進行位操作。
2、用define
#define ws_base 1
#define ws_border (ws_base<<2)
#define ws_dlgframe (ws_base<<3)
#define ws_vscroll (ws_base<<4)
#define ws_hscroll (ws_base<<5)
優點:可以直接進行位運算
缺點:移位操作符的優先順序很低,必須加括號保護
3、用define與16進製制
#define ws_base 1
#define ws_border 4
#define ws_dlgframe 8
#define ws_vscroll 0x10
#define ws_hscroll 0x20
優點:可以直接進行位運算
缺點:排列不整齊,可以稍微改進下
#define ws_base 0x0001
#define ws_border 0x0004
#define ws_dlgframe 0x0008
#define ws_vscroll 0x0010
#define ws_hscroll 0x0020
是不是舒服很多。。。 附windows的定義
iOS開發 判斷NSString是否包含某個字串
主要用到三種方法來判斷 rangeofstring 是否包含 hasprefix 是否在字首包含 hassuffix 是否在末尾包含 判斷字元是否包含某字串 nsstring string hello,shenzhen,martin 字條串是否包含有某字串 if string rangeofstri...
判斷js物件是否擁有某屬性
兩種方式,但稍有區別 1,in 運算子1 2 3 varobj alert name inobj true alert tostring inobj true 可看到無論是name,還是原形鏈上的tostring,都能檢測到返回true。2,hasownproperty 方法1 2 3 varobj...
判斷JS物件是否擁有某屬性
兩種方式,但稍有區別 1,in 運算子 var obj alert name in obj true alert tostring in obj true 可看到無論是name,還是原形鏈上的tostring,都能檢測到返回true。2,hasownproperty 方法 var obj obj.h...