Q: | 某一長整數(Long)其值為 &H01020304,
試問它在記憶體內部的結構是 (a) 還是 (b):
|
A: | 結果是 (b), 以下是證明的方法:
1. 宣告以下兩種自訂型別: Private Type tLong L As Long End Type Private Type t4Bytes b4(0 To 3) As Byte End Type 2. 撰寫以下程式進行測試: Dim X1 As tLong Dim X2 As t4Bytes X1.L = &H01020304 LSet X2 = X1 ' 將 X1 的記憶體複製到 X2 Debug.Print X2.b4(0), X2.b4(1), X2.b4(2), X2.b4(3) 結果印出: 4, 3, 2, 1 特別說明: 以上程式最有意思的地方是 LSet 敘述, 此一敘述可以直接複製「不同自訂型別」(如以上的 tLong 及 t4Bytes 自訂型別)的資料。 為了檢驗某一資料的內容(如本例的 Long), 我們可以宣告一個與該資料等長度的 Byte 陣列(如本例的 b4(0 To 3) As Byte), 然後再利用 LSet 將資料複製到 Byte 陣列中, 然後逐一檢驗資料每一個 Byte 的內容。 |