這是本文件的舊版!
驅動程式中使用
KdPrint 而盡量不要使用 DbgPrint
KdPrint 會根據編譯版本看是否呼叫 DbgPrint或者不輸出
Checked –> KdPrint –> DbgPrint
Free –> KdPrint –> XXX
DbgView 免費提供 可在微軟的網站中找到
DbgView 可以同時監聽內核和 Win32 上層應用程式發送的除錯訊息。
| 符号 | 格式说明符 | 类型 |
|---|---|---|
| %c, %lc | ANSI字符 | char |
| %C, %wc | 宽字符 | wchar_t |
| %d, %i | 十进制有符号整数 | int |
| %D | 十进制int64 |int64 | |
| %L | 十六进制的LARGE_INTEGER | LARGE_INTEGER |
| %s, %ls | NULL终止的ANSI字符串 | char* |
| %S, %ws | NULL终止的宽字符串 | wchar_t* |
| %Z | ANSI_STRING字符串 | ANSI_STRING |
| %wZ | UNICODE_STRING字符串 | UNICODE_STRING |
| %u | 十进制的ULONG | ULONG |
| %x | 小写字符十六进制的ULONG | ULONG |
| %X | 大写字符十六进制的ULONG | ULONG |
| %p | 指针Pointer 32/64位 |
運算子的種類
| 算數運算子 | 說明 | 範例(假設 a = 10, b = 3) |
|---|---|---|
| + | 加法運算子 | a + b 結果為 13 |
| - | 減法運算子 | a - b 結果為 7 |
| * | 乘法運算子 | a * b 結果為 30 |
| / | 除法運算子 | a / b 結果為 3 (整數除法) |
| % | 取餘數 | a % b 結果為 1 (餘數) |
| ++ | 遞增 | a++ 使 a 變為 11 |
| – | 遞減 | a– 使 a 變為 9 |
| 邏輯運算子 | 說明 | 範例 (假設 a = 1, b = 0) |
|---|---|---|
| && | 邏輯 AND | a && b 結果為 0 (僅當兩者皆非零時才為真) |
| || | 邏輯 OR | a || b |
| ! | 邏輯 NOT | !a |
| 位元運算子 | 說明 | 範例 |
|---|---|---|
| ~ | 位元補數運算子 | |
| & | 位元 AND 運算子 | a & 0x0F 將 bit 4~7 設為 0 |
| | | 位元 OR 運算子 | a | 0x0F 將 bit 0~3 設為 1 |
| ^ | 位元 XOR 運算子 | |
| « | 位元左移運算子 | a « 8, a 左移 8 bit |
| » | 位元右移運算子 | a » 8, a 右移 8 bit |
| 關係運算子 | 說明 | 範例 (假設 a = 5, b = 3) |
|---|---|---|
| == | 等於運算子 | a == b 結果為 0 (False) |
| != | 不等於運算子 | a != b 結果為 1 (True) |
| > | 大於運算子 | a > b 結果為 1 (True) |
| < | 小於運算子 | a < b 結果為 0 (False) |
| >= | 大於等於運算子 | a >= b 結果為 1 (True) |
| ⇐ | 小於等於運算子 | a ⇐ b 結果為 0 (False) |
| 指派運算子 | 說明 | 範例 |
|---|---|---|
| = | 簡單指派 | a = 5; |
| += | 加後指派 | a += 2; 等同於 a = a + 2; |
| -= | 減後指派 | a -= 2; 等同於 a = a - 2; |
| *= | 乘後指派 | a *= 2; 等同於 a = a * 2; |
| /= | 除後指派 | a /= 2; 等同於 a = a / 2; |
| %= | 模後指派 | a %= 2; 等同於 a = a % 2; |
其他重要運算子
(? :): 唯一的三元運算子 (ternary operator),用於簡潔的條件判斷式。
範例: (a > b) ? a : b; (如果 a > b 為真,則返回 a,否則返回 b)
返回運算元的大小 (以位元組為單位)。
範例: sizeof(int)
用於處理記憶體位址和指標。
<code>
&: 位址運算子 (Address-of operator),返回變數的記憶體位址。
*: 解參考運算子 (Dereference operator),訪問指標所指向的值。
<code>