Cocos2dx 學習筆記22 常用宏定義

與節點屬性(property)相關的

CC_PROPERTY_READONLY
CC_PROPERTY_READONLY_PASS_BY_REF
CC_PROPERTY
CC_PROPERTY_PASS_BY_REF
CC_SYNTHESIZE_READONLY
CC_SYNTHESIZE_READONLY_PASS_BY_REF
CC_SYNTHESIZE
CC_SYNTHESIZE_PASS_BY_REF
CC_SYNTHESIZE_RETAIN

具體定義見CCPlatformMacros.h。這些主要是爲了模擬objective-C下的@property, readonly, retain, @synthesize等關鍵字。

與命名空間(namespace)相關

NS_CC_BEGIN
NS_CC_END
USING_NS_CC
具體定義見CCPlatformMacros.h。

與節點的創建方法(node, create)相關

CREATE_FUNC
NODE_FUNC
具體定義見CCPlatformMacros.h。

與內存管理相關

CC_SAFE_DELETE
CC_SAFE_DELETE_ARRAY
CC_SAFE_FREE
CC_SAFE_RELEASE
CC_SAFE_RELEASE_NULL
CC_SAFE_RETAIN

在代碼中使用這些宏,可以減少敲鍵盤的次數,從而提高編寫效率。什麼時候用SAFE_DELETE 什麼時候用SAFE_RELEASE呢?????????請關注blog.csdn.net @weibo.com/shunfengche

填空題:

 malloc calloc申請空間的用__釋放,c++ new申請空間的用___釋放,CCObject子類對象用_____釋放。

日誌

CCLOG
CCLOGERROR
CCLOGINFO
CCLOGWARN
具體定義見CCPlatformMacros.h。

斷言

CC_BREAK_IF
CC_ASSERT
CCAssert

其中CC_BREAK_IF是在CCPlatformMacros.h中定義的,它用在循環中的條件判斷。

CC_BREAK_IF有一個使用非常頻繁的場合,就是在do{}while(0)中。這個使用語句塊的作用還是挺大的。根據GOOGLE編程規範,爲了減少代碼層次,條件判斷應該先進行,不滿足則跳過後面代碼。跳過有兩種方式,一種是return,另一種是break。前一種方式下,後面的全部代碼都不能得到執行;後一種方式必須放在循環或者swich語句塊中。如果使用do{}while(0)則可以解決第一種方式後面的代碼得不到執行的問題。

CCAssert定義在ccMacros.h中,它是對CC_ASSERT的封裝。與數學相關

CCRANDOM_MINUS1_1
CCRANDOM_0_1
CC_DEGREES_TO_RADIANS
CC_RADIANS_TO_DEGREES
具體定義見ccMacros.h。產生隨機數與弧度與角度的轉換。

點(CCPoint)相關

ccp

具體定義在CCPointExtension.h中。此文件中還定義了很多與點運算相關的API。需要作點運算時,先檢查此處是否已經定義過了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章