_T("") 讓代碼同時支持 ANSI(單字節)與 Unicode(雙字節)編譯模式:
_UNICODE:_T("ABC") → "ABC" (ANSI)_UNICODE:_T("ABC") → L"ABC" (寬字符)| 類型 | 含義 | 字節/字符 |
|---|---|---|
| LPSTR | 可修改字符串指標 | 1 |
| LPCSTR | 常量字符串指標 | 1 |
| LPTSTR | 可修改 TCHAR 字符串指標 | 1 或 2 |
| LPCTSTR | 常量 TCHAR 字符串指標 | 1 或 2 |
_T("...") 或 _TEXT("...")TCHAR、LPTSTR、LPCTSTR_tcslen、_tcscpy 等 _tcs 系列,避免直接用 strlen/strcpy_L 強制 Unicode,_T 自適應,優先用 _T| 維度 | 堆 | 棧 |
|---|---|---|
| 分配方式 | 程序員手動 new/malloc | 編譯器自動(函數調用、局部變數) |
| 釋放方式 | 手動 delete/free,否則洩漏 | 自動(作用域結束) |
| 空間大小 | 大(理論 2GB-4GB) | 小(通常 1MB-8MB) |
| 碎片問題 | 頻繁申釋產生碎片 | 無碎片(棧幀連續) |
| 分配效率 | 較慢(需尋找塊) | 極快(指針移動) |
類比:堆像「自助餐廳」靈活但需自理;棧像「套餐制」高效但受限。
| OSI 七層 | TCP/IP 四層 | 關鍵協議 |
|---|---|---|
| 應用層、表示層、會話層 | 應用層 | HTTP, FTP, SMTP, DNS, Telnet |
| 傳輸層 | 傳輸層 | TCP, UDP |
| 網絡層 | 網絡層 | IP, ICMP, IGMP |
| 數據鏈路層、物理層 | 網絡接口層 | Ethernet, WiFi, PPP |
// 服務端 WSAStartup → socket → bind → listen → accept → send/recv → closesocket → WSACleanup // 客戶端 WSAStartup → socket → connect → send/recv → closesocket → WSACleanup
無需 listen/accept/connect,直接 sendto/recvfrom 指定目標地址。
32 位進程虛擬地址空間 4GB(2³²)。物理記憶體 + 頁文件構成虛擬記憶體。這是 32 位系統單進程寻址上限,也是記憶體條常不超 4GB 的原因(PAE 除外)。
| 指標 | 多線程 | 多進程 |
|---|---|---|
| 記憶體開銷 | 小(共享地址空間) | 大(獨立 4GB 空間) |
| 切換開銷 | 低(僅上下文切換) | 高(切換地址空間、TLB 刷新) |
| 通信效率 | 高(直接讀寫共享內存) | 低(IPC 機制:管道、共享內存、Socket) |
| 穩定性 | 低(一線程崩潰導致全進程死) | 高(進程隔離) |