首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言關鍵字 far 指標修飾符解析

     編輯:程式設計綜合問答

問題背景

程式碼中出現 void far line(),詢問 far 含義。

歷史背景

far、near、huge 是 16 位元 DOS 時代(Turbo C、Borland C、Microsoft C 5.1/6.0)針對分段記憶體架構的非標準關鍵字:

  • near 指標:16 位元,僅存偏移量,預設資料段 (DS) 或程式碼段 (CS),可寻址 64KB。
  • far 指標:32 位元 (段:偏移),完整段地址+偏移,可寻址 1MB 實模式記憶體。
  • huge 指標:同 far,但支援跨段運算(巨大陣列)。

現代環境

  • 32/64 位元保護模式作業系統(Windows、Linux、macOS)採用平坦記憶體模型,不再需要 far/near。
  • 現代編譯器(GCC、Clang、MSVC 14+)忽略或報錯 此關鍵字,除非啟用特定相容模式。
  • 嵌入式 16 位元單晶片(如 8051、MSP430 部分模式)可能仍使用類似擴充。

程式碼遷移建議

// 舊代碼
void far line();

// 現代標準 C
void line(); // 直接移除 far

若維護古老 DOS 程式碼,請參考原編譯器文件;新專案完全不用 此關鍵字。

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