首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

程序員雜記:C/C++ 編譯鏈接、Linux 防火牆、網絡協議、編碼、GDB、Web 服務器等實用筆記

     編輯:C++ 入門

程序員雜記:實用技術筆記匯總

收錄 C/C++ 編譯鏈接模型、Linux 防火牆操作、常見網絡協議、IP 地址分類、GDB 調試技巧、Apache/Tomcat 區別、指釖強轉、文件編碼檢測、中文處理等實用知識點。

1. C/C++ 編譯單元與符號可見性

  • 編譯單元:經預處理(展開 `#include`)後的 `.cpp` 文件。
  • 同一編譯單元內重名符號編譯期報錯;不同編譯單元重名符號鏈接期報錯。
  • 頭文件用條件編譯(`#ifndef/#define/#endif`)防止重複包含。
  • 頭文件宜放:類定義、`extern` 變量聲明、函數聲明。

2. C++ 命名空間

  • 可多次聲明/定義同名命名空間,編譯器自動合併成員。

3. Linux 防火牆 (iptables) 操作

# 重啟生效
chkconfig iptables on   # 開啟
chkconfig iptables off  # 關閉
# 即時生效
service iptables start  # 開啟
service iptables stop   # 關閉

4. 常見網絡協議端口

協議全稱默認端口
Telnet遠程登錄23
FTP文件傳輸協議21/20
SMTP簡單郵件傳送協議25
SNMP簡單網絡管理協議161/162
ARP地址解析協議—
RARP逆地址解析協議—

5. IP 地址分類

類別起始地址用途
A0.0.0.0大型網絡
B128.0.0.0中型網絡
C192.0.0.0小型網絡
D224.0.0.0組播
E240.0.0.0保留/實驗

6. GDB 數組打印控制

set print repeats N    # 設置連續相同元素打印上限,超過顯示 
show print repeats     # 查看當前上限

7. Apache vs Tomcat

  • Apache:HTTP Server,擅長靜態內容。
  • Tomcat:Servlet/JSP 容器(Java 應用服務器),可獨立運行(Standalone 模式)處理 HTTP,但靜態性能不如 Apache。
  • 常見架構:Apache (前端靜態/反向代理) + Tomcat (後端動態)。

8. 指針強制類型轉換本質

僅改變內存位元的解讀方式,不改變內存內容。

int temp = 55;          // 0x00000037
char *p = (char*)&temp; // 取低位字節 0x37 = 55 ('7')
printf("%c", *p);       // 輸出 '7'

9. 文件編碼與 BOM 處理

  • Windows 保存的 UTF-8 可能帶 BOM (`EF BB BF`),導致解析錯誤。
  • 檢測命令:`grep -I -r -l $'\xEF\xBB\xBF' /path`
  • 轉為無 BOM UTF-8 格式。

10. 中文編碼核心概念

  • 源文件編碼決定字符串字面量的編碼(GBK/UTF-8 等)。
  • `file` 命令判為 ISO-8859 通常意味著實際是 GBK(因 ISO-8859 不支持中文)。
  • Unicode 是字符集,UTF-8/UTF-16/GBK 是編碼方式。
  • UTF-8 適合英文多、中文少的代碼文件(節省空間)。
  • GBK 兼容 GB2312,含繁簡體;GB2312 僅簡體。

11. CAS (Compare-And-Swap)

原子操作:比較內存值與期望值,相等則替換為新值。無鎖編程基石。

總結

這些零散知識點覆蓋了底層編譯鏈接、系統運維、網絡基礎、調試技巧、編碼處理等日常開發高頻場景,建議收藏備查。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved