Fortran 專為科學計算設計(FORTRAN 90/95 增加現代特性),C/C++ 為系統編程語言,生態豐富、跨平台、支援 OOP、GUI、數據庫、圖形等。現代工程軟件多選 C++,Fortran 僅存留於核心數值庫。
| 維度 | C/C++ | Fortran |
|---|---|---|
| 複數運算 | 需自定義 struct/class + 運算符重載,函數調用開銷大,除非 inline | 內建 `COMPLEX` 類型,編譯器優化極佳,短表達式直接展開 real/imag 部 |
| 程序參數 | `main(int argc, char** argv)` 靈活解析 | 無標準參數機制,需依賴編譯器擴展 |
| 動態內存 | `malloc`/`new` 靈活控制 | 早期靜態,F90 支援 `ALLOCATABLE`,但較受限 |
| 多維數組 | 行主序,指針運算靈活但易錯 | 列主序,原生多維切片、整體運算(`A(:,:)=B(:,:)*C`),表達力強 |
| 函數調用 | 傳值/指針/引用,參數須匹配 | 傳址調用,參數關聯性強,易產生副作用 |
C 以 `\0` 結尾字符數組,操作繁瑣;Fortran 固定長度字符變量,賦值自動截斷/填空,字符串操作內建函數豐富(`TRIM`, `ADJUSTL`, `INDEX` 等)。
語言無優劣,只有場景適配。理解兩者在複數、數組、內存、調用約定上的本質差異,能做出正確架構決策。