![]() |
mFrame
|
指標操作工具類別 更多...
#include <Pointers.h>
靜態公開方法(Static Public Methods) | |
| static void *const & | getReferenceNullPointer (void) |
| 獲取空指標的常數引用 | |
| static uint32 | toUnsignedInt (const void *pointer) |
| 將指標轉換為無符號整數 | |
| static uint32 | toSignedInt (const void *pointer) |
| 轉換為整數 | |
| template<class T > | |
| static T * | shift (T *pointer, int shift) |
| 指標位址偏移計算 | |
| template<class T > | |
| static T * | shift (T *pointer, uint32 shift) |
| 指標位址偏移計算(無符號整數) | |
| template<class T > | |
| static const T * | shift (const T *pointer, int shift) |
| 常數地址偏移 | |
| template<class T > | |
| static const T * | shift (const T *pointer, uint32 shift) |
| 常數地址偏移(無符號整數) | |
| template<class T > | |
| static T * | cast (void *src) |
| 型態轉換輔助方法 | |
| template<class T > | |
| static T * | cast (uint32 address) |
| 型態轉換 | |
| static void | copy (void *destination, const void *source, int length) |
| 複製記憶體區塊(位元組數) | |
| static void | copy (void *destination, const void *source, uint32 length) |
| 複製記憶體區塊(位元組數) | |
| static void | move (void *destination, const void *source, int length) |
| 移動記憶體區塊 | |
| static void | move (void *destination, const void *source, uint32 length) |
| 移動記憶體區塊 | |
| static int | compare (const void *src1, const void *src2, int length) |
| 比較兩記憶體區塊的內容 | |
| template<typename T , size_t N> | |
| static void | wipe (T(&array)[N], int value=0) |
| 將陣列記憶體區塊設置為指定值 | |
| template<typename T > | |
| static void | wipe (T &array, int value=0) |
| 將物件記憶體區塊設置為指定值 | |
| static void | wipe (void *src, int length, int value=0) |
| 將記憶體區塊設置為指定值 | |
| static int | getStringLength (const char *src) |
| 取得C字串的長度 | |
保護方法(Protected Methods) | |
| virtual | ~Pointers (void) override=default |
| Destroy the Pointers object. | |
保護方法(Protected Methods) 繼承自 ufm::lang::NonInstantiable | |
| NonInstantiable (void)=delete | |
| 禁止實例化 NonInstantiable 類別 | |
| NonInstantiable (const NonInstantiable &)=delete | |
| 禁止複製建構函式 | |
| virtual | ~NonInstantiable (void) override=default |
| Destroy the Non Instantiable object. | |
| NonInstantiable & | operator= (const NonInstantiable &)=delete |
| NonInstantiable & | operator= (NonInstantiable &&)=delete |
額外的繼承成員 | |
公開方法(Public Methods) 繼承自 ufm::lang::Object | |
| void * | operator new (size_t n) |
| 使用運算子 new 分配記憶體 | |
| void * | operator new (size_t n, void *p) |
| 在指定記憶體上調用運算子 new | |
| virtual ufm::lang::Object & | getObject (void) override |
| 取得對應的 Object 物件 | |
| void | delay (int milliseconds) const |
| 延遲指定的毫秒數進行執行緒等待 | |
| bool | equals (Object *object) const |
| 判斷與另一物件是否為相同參照(指標型態比較) | |
| bool | equals (Object &object) const |
| 判斷與另一物件是否為相同參照(參照型態比較) | |
| void | wait (void) const |
| 使當前線程等待直到被通知 | |
| bool | wait (int timeout) const |
| 等待通知或超時 | |
| bool | yield (void) const |
| 讓執行緒讓渡控制權給同優先權的下一個執行緒 | |
| int | lock (void) const |
| 核心鎖定,鎖定期間禁止線程切換 | |
| int | unlock (void) const |
| 核心解鎖 | |
| ufm::sys::Thread * | currentThread (void) const |
| 取得當前執行緒指標 | |
| virtual int | hashcode (void) const |
| 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。 | |
公開方法(Public Methods) 繼承自 ufm::lang::Interface | |
| virtual | ~Interface (void)=default |
| 虛擬析構函式 | |
指標操作工具類別
本類別提供針對指標的位元組轉換、偏移、拷貝、移動與比較等各項操作, 並以靜態方法提供便利的功能實作。
|
inlinestatic |
型態轉換
| T | 原始型態 |
| address | 來源地址 |
| t | 轉換型態 |
|
inlinestatic |
型態轉換輔助方法
| T | 目標型態 |
| src | 來源指標 |
|
static |
比較兩記憶體區塊的內容
按位元組比較兩個記憶體區塊。
| src1 | 區塊1指標 |
| src2 | 區塊2指標 |
| length | 比較的位元組數 |
|
static |
複製記憶體區塊(位元組數)
將來源記憶體區塊的內容複製到目標區塊(逐位元組複製)。
| destination | 目標記憶體區塊指標 |
| source | 來源記憶體區塊指標 |
| length | 要複製的位元組數 |
|
inlinestatic |
複製記憶體區塊(位元組數)
將來源記憶體區塊的內容複製到目標區塊(逐位元組複製)。
| destination | 目標記憶體區塊指標 |
| source | 來源記憶體區塊指標 |
| length | 要複製的位元組數 |
|
static |
獲取空指標的常數引用
|
static |
取得C字串的長度
計算以 '\0' 結尾的字串長度,不包含終止符。
| src | 原始字串指標 |
|
static |
移動記憶體區塊
將來源記憶體區塊移動到目標區塊,用於來源與目標可能重疊的情況。
| destination | 目標記憶體區塊指標 |
| source | 來源記憶體區塊指標 |
| length | 要移動的位元組數 |
|
inlinestatic |
移動記憶體區塊
將來源記憶體區塊移動到目標區塊,用於來源與目標可能重疊的情況。
| destination | 目標記憶體區塊指標 |
| source | 來源記憶體區塊指標 |
| length | 要移動的位元組數 |
|
inlinestatic |
常數地址偏移
| T | 類別 |
| pointer | 常數地址來源 |
| shift | 偏移 |
|
inlinestatic |
常數地址偏移(無符號整數)
| T | 類別 |
| pointer | 常數地址來源 |
| shift | 偏移 |
|
inlinestatic |
指標位址偏移計算
| T | 指標類型 |
| pointer | 原始指標 |
| shift | 偏移量(可為正或負) |
|
inlinestatic |
指標位址偏移計算(無符號整數)
| T | 指標類型 |
| pointer | 原始指標 |
| shift | 偏移量(無符號整數) |
|
inlinestatic |
轉換為整數
| pointer | 地址 |
|
inlinestatic |
將指標轉換為無符號整數
| pointer | 要轉換的指標 |
|
inlinestatic |
將物件記憶體區塊設置為指定值
將物件填充為指定的整數值。
| T | 物件類型 |
| array | 目標物件引用 |
| value | 填充值 |
|
inlinestatic |
將陣列記憶體區塊設置為指定值
將陣列填充為指定的整數值。
| T | 陣列元素類型 |
| N | 陣列大小 |
| array | 目標陣列引用 |
| value | 填充值 |
|
static |
將記憶體區塊設置為指定值
將 src 開始的記憶體區塊填充為指定的整數值。
| src | 目標記憶體區塊指標 |
| value | 填充值 |
| length | 填充的位元組數 |