使用者工具

網站工具


visual_c_plusplus

這是本文件的舊版!


Visual C++ 研究

驅動程式中使用
KdPrint 而盡量不要使用 DbgPrint
KdPrint 會根據編譯版本看是否呼叫 DbgPrint或者不輸出
Checked –> KdPrint –> DbgPrint
Free –> KdPrint –> XXX

DbgView 免費提供 可在微軟的網站中找到
DbgView 可以同時監聽內核和 Win32 上層應用程式發送的除錯訊息。

符号 格式说明符 类型
%c, %lcANSI字符 char
%C, %wc宽字符 wchar_t
%d, %i 十进制有符号整数 int
%D 十进制int64 |int64
%L 十六进制的LARGE_INTEGER LARGE_INTEGER
%s, %lsNULL终止的ANSI字符串 char*
%S, %wsNULL终止的宽字符串 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 運算子

返回運算元的大小 (以位元組為單位)。

 範例: sizeof(int) 

指標運算子 (*, &)

用於處理記憶體位址和指標。
<code> &: 位址運算子 (Address-of operator),返回變數的記憶體位址。 *: 解參考運算子 (Dereference operator),訪問指標所指向的值。 <code>

visual_c_plusplus.1764147215.txt.gz · 上一次變更: 2025/11/26 16:53 由 don