Fortran語言,從公式翻譯系統(tǒng)獲得,是一種通用的,命令式編程語言。它用于數(shù)字和科學(xué)計(jì)算。
Fortran語言最初是由IBM在20世紀(jì)50年代的科學(xué)和工程應(yīng)用的發(fā)展。 Fortran語言統(tǒng)治這個(gè)規(guī)劃面積很長一段時(shí)間,并成為高性能計(jì)算很受歡迎,因?yàn)椤?
它支持:
Fortran語言是由一個(gè)團(tuán)隊(duì),于1957年由約翰·巴克斯在IBM領(lǐng)導(dǎo)創(chuàng)建的。
最初使用的名字寫在所有的資本,但是目前的標(biāo)準(zhǔn)和實(shí)現(xiàn)只需要第一個(gè)字母要大寫。
Fortran語言表示的公式轉(zhuǎn)換器。
最初是為科學(xué)計(jì)算開發(fā)的,它必須為字符串和所需的通用編程其他結(jié)構(gòu)的支持非常有限。
后來的擴(kuò)展和發(fā)展,使它成為具有良好的便攜高水平的編程語言。
原始版本的Fortran I,II和III現(xiàn)在已經(jīng)過時(shí)了。
最早的版本仍然在使用的Fortran IV標(biāo)準(zhǔn),和Fortran 66。
最常見的是今天使用的版本是:Fortran 77的,90的Fortran和Fortran 95。
Fortran 77的字符串添加作為一個(gè)獨(dú)特的類型。
Fortran 90的加入各種各樣線程,和直接陣列處理。
G95是GNU的Fortran多architechtural編譯器,用于在Windows中設(shè)置的Fortran。 Windows版本的模仿windows下MingW平臺(tái)使用UNIX環(huán)境。安裝程序完成這個(gè)功能并自動(dòng)添加G95到Windows PATH變量。
在安裝過程中,如果選擇“推薦”選項(xiàng)G95會(huì)自動(dòng)添加到您的PATH變量。這意味著,你可以簡單地打開一個(gè)新的命令提示符窗口,輸入“G95”,彈出編譯器。下面找到一些基本的命令,讓你開始。
命令 | 描述 |
---|---|
G95 -c hello.f90 | 編譯hello.f90到目標(biāo)文件命名為hello.o |
G95 hello.f90 | 編譯hello.f90和鏈接它來生成可執(zhí)行的a.out |
G95 -c h1.f90 h2.f90 h3.f90 | 編譯多個(gè)源文件。如果一切順利的話,目標(biāo)文件h1.o,h2.o和h3.o創(chuàng)建 |
G95 -o你好h1.f90 h2.f90 h3.f90 | 編譯多個(gè)源文件并將它們鏈接起來,以一個(gè)名為'你好'的可執(zhí)行文件 |
對(duì)于G95命令行選項(xiàng):
-c Compile only, do not run the linker. -o Specify the name of the output file, either an object file or the executable.
多個(gè)源和目標(biāo)文件可以一次指定。 Fortran文件都通過“.F”,“.F”“。對(duì)于”結(jié)尾的名字所指出的,“.FOR”,“.F90”,“.F90”,“.F95”,“.F95”,“。 F03“和”.F03“。多個(gè)源文件可以指定。對(duì)象文件也可被指定,并且將被連接以形成一個(gè)可執(zhí)行文件。
的Fortran程序是由程序單元像一個(gè)主程序,模塊和外部子程序或程序的集合。
每個(gè)程序包含一個(gè)主程序和可以或可以不包含其它程序單元。主程序的語法如下:
program program_name implicit none ! type declaration statements ! executable statements end program program_name
讓我們寫一個(gè)程序,增加了兩個(gè)數(shù)字,并打印出結(jié)果:
program addNumbers ! This simple program adds two numbers implicit none ! Type declarations real :: a, b, result ! Executable statements a = 12.0 b = 15.0 result = a + b print *, 'The total is ', result end program addNumbers
當(dāng)你編譯和執(zhí)行上面的程序,它會(huì)產(chǎn)生以下結(jié)果:
The total is 27.0000000
請(qǐng)注意:
所有Fortran程序啟動(dòng)與關(guān)鍵字程序并結(jié)束與關(guān)鍵字結(jié)束程序,然后該程序的名稱。
隱式無語句允許編譯器檢查你所有的變量類型正確聲明。你必須總是在每個(gè)節(jié)目開始使用隱無 。
在Fortran語言注釋開始與感嘆號(hào)(!),因?yàn)樵谶@之后的所有字符(除了在一個(gè)字符串)被編譯器忽略。
打印*在屏幕上顯示命令數(shù)據(jù)。
行代碼的縮進(jìn)是保持一個(gè)程序讀取一個(gè)很好的做法。
Fortran的同時(shí)允許大寫和小寫字母。 Fortran語言是不區(qū)分大小寫,除了字符串。
基本字符集的Fortran包含:
令牌在基本字符集字符制成的。令牌可以是一個(gè)關(guān)鍵詞,一個(gè)標(biāo)識(shí)符,常量,字符串文字或符號(hào)。
程序語句是由令牌。
一個(gè)標(biāo)識(shí)符是用于標(biāo)識(shí)變量,過程或任何其它用戶定義的項(xiàng)目的名稱。在Fortran語言的名稱必須遵循以下規(guī)則:
它不能超過31個(gè)字符。
它必須由字母數(shù)字字符(字母表中的所有字母和數(shù)字0到9)和下劃線(_)。
名稱的第一個(gè)字符必須是字母。
名稱不區(qū)分大小寫
關(guān)鍵字是特殊的單詞,語言的保留。這些保留字不能用作標(biāo)識(shí)符或名稱。
下面的表格,列出了Fortran語言的關(guān)鍵字:
非I / O關(guān)鍵字 | ||||
---|---|---|---|---|
可分配 | 分配 | 分配 | 分配 | 數(shù)據(jù)塊 |
呼叫 | 案件 | 字符 | 共同 | 復(fù)雜 |
包含 | 繼續(xù) | 周期 | 數(shù)據(jù) | DEALLOCATE |
默認(rèn) | 做 | 雙精度 | 其他 | 否則,如果 |
別處 | 最終數(shù)據(jù)塊 | 做到底 | 最終功能 | 萬一 |
結(jié)束接口 | 前端模塊 | 程序結(jié)束 | 最終選擇 | 結(jié)束子程序 |
結(jié)束類型 | 到底哪里 | 條目 | 等價(jià) | 出口 |
外部 | 功能 | 去 | 如果 | 含蓄 |
在 | 進(jìn)出 | 整數(shù) | 意圖 | 接口 |
固有 | 類 | LEN | 合乎邏輯的 | 模 |
名單 | 廢止 | 只要 | 操作者 | 可選的 |
出 | 參數(shù) | 暫停 | 指針 | 私人的 |
程序 | 上市 | 真實(shí) | 遞歸 | 結(jié)果 |
返回 | 保存 | 選擇案例 | 停止 | 子程序 |
目標(biāo) | 然后 | 類型 | 類型() | 使用 |
哪里 | 而 | |||
在I / O相關(guān)的關(guān)鍵字 | ||||
退格 | 關(guān) | ENDFILE | 格式 | 查詢 |
打開 | 打印 | 讀 | 倒帶 | 寫 |
Fortran語言提供了五種內(nèi)部數(shù)據(jù)類型,但是,你可以得到你自己的數(shù)據(jù)類型為好。五個(gè)內(nèi)在的類型有:
整數(shù)類型只能容納整數(shù)值。下面的例子中提取,可以在通常的4字節(jié)整數(shù)中保存的最大值:
program testingInt implicit none integer :: largeval print *, huge(largeval) end program testingInt
當(dāng)你編譯和執(zhí)行上面的程序它產(chǎn)生以下結(jié)果:
2147483647
需要注意的是巨大的()函數(shù)給出可由特定整數(shù)數(shù)據(jù)類型被保持的最大數(shù)目。還可以指定使用的那種符的字節(jié)數(shù)。下面的例子說明了這一點(diǎn):
program testingInt implicit none !two byte integer integer(kind=2) :: shortval !four byte integer integer(kind=4) :: longval !eight byte integer integer(kind=8) :: verylongval !sixteen byte integer integer(kind=16) :: veryverylongval !default integer integer :: defval print *, huge(shortval) print *, huge(longval) print *, huge(verylongval) print *, huge(veryverylongval) print *, huge(defval) end program testingInt
當(dāng)你編譯和執(zhí)行上面的程序,它會(huì)產(chǎn)生以下結(jié)果:
32767 2147483647 9223372036854775807 170141183460469231731687303715884105727 2147483647
它存儲(chǔ)浮點(diǎn)數(shù),例如2.0,3.1415,-100.876等
傳統(tǒng)上有兩種不同的現(xiàn)實(shí)類型,默認(rèn)實(shí)型和雙精度型。
然而,F(xiàn)ortran語言90/95提供了真實(shí)和整數(shù)數(shù)據(jù)類型通過一種說明,我們將在數(shù)字章節(jié)中研究精密的控制。
下面的例子說明了如何使用真實(shí)的數(shù)據(jù)類型:
program division implicit none ! Define real variables real :: p, q, realRes ! Define integer variables integer :: i, j, intRes ! Assigning values p = 2.0 q = 3.0 i = 2 j = 3 ! floating point division realRes = p/q intRes = i/j print *, realRes print *, intRes end program division
當(dāng)你編譯和執(zhí)行上面的程序它產(chǎn)生以下結(jié)果:
0.666666687 0
這個(gè)用于存儲(chǔ)復(fù)數(shù)。一個(gè)復(fù)雜的數(shù)字有兩部分,實(shí)部和虛部。兩個(gè)連續(xù)的數(shù)字存儲(chǔ)單元存儲(chǔ)這兩個(gè)部分。
例如,該復(fù)數(shù)(3.0,-5.0)等于3.0 - 5.0i
我們將詳細(xì)討論復(fù)雜類型,在數(shù)字章節(jié)。
僅存在兩個(gè)邏輯值:.TRUE。和.FALSE。
字符類型存儲(chǔ)字符和字符串。字符串的長度可以通過LEN說明指定。如果未指定長度,它是1。
例如,
character (len=40) :: name name = “Zara Ali”
表達(dá), 域名(1:4),將給予串“扎拉”。
Fortran語言的舊版本允許一個(gè)叫做隱式類型,也就是說,你不必在使用前聲明變量功能。如果變量未聲明,那么它的名字的第一個(gè)字母,將決定其類型。
開始以i的變量名,J,K,L,M,或n,被認(rèn)為是為整數(shù)變量,其余都是真實(shí)的變量。但是,你必須為它良好的編程習(xí)慣聲明所有的變量。對(duì)于您的發(fā)言開始你的程序:
implicit none
這個(gè)語句關(guān)閉隱式類型。
變量是什么,但給我們的程序可以操縱一個(gè)存儲(chǔ)區(qū)的名稱。每個(gè)變量應(yīng)該具有特定的類型,它決定了大小和變量的存儲(chǔ)器的布局;可以存儲(chǔ)該存儲(chǔ)器內(nèi)的值的范圍內(nèi);和該組操作可以施加到可變。
變量的名稱可以由字母,數(shù)字和下劃線。在Fortran語言的名稱必須遵循以下規(guī)則:
它不能超過31個(gè)字符。
它必須由字母數(shù)字字符(字母表中的所有字母和數(shù)字0到9)和下劃線(_)。
名稱的第一個(gè)字符必須是字母。
名稱不區(qū)分大小寫。
基于基本類型前面的章節(jié)中介紹,下面是變量類型:
類型 | 描述 |
---|---|
整數(shù) | 它只能容納整數(shù)值。 |
真實(shí) | 它存儲(chǔ)浮點(diǎn)數(shù)。 |
復(fù)雜 | 它用于存儲(chǔ)復(fù)數(shù)。 |
合乎邏輯的 | 它存儲(chǔ)邏輯布爾值。 |
字符 | 它存儲(chǔ)的字符或字符串。 |
變量在一個(gè)類型聲明語句一個(gè)程序(或子程序)的開頭聲明。
語法變量聲明如下:
type-specifier :: variable_name
例如,
integer :: total real :: average complex :: cx logical :: done character(len=80) :: message ! a string of 80 characters
稍后,您可以將值分配給這些變量一樣,
total = 20000 average = 1666.67 done = .true. message = “A big Hello from Tutorials Point” cx = (3.0, 5.0) ! cx = 3.0 + 5.0i
您也可以使用內(nèi)部函數(shù)CMPLX,賦值給一個(gè)復(fù)數(shù)變量:
cx = cmplx (1.0/2.0, -7.0) ! cx = 0.5 – 7.0i cx = cmplx (x, y) ! cx = x + yi
例
下面的示例演示屏幕上變量聲明,分配和顯示:
program variableTesting implicit none ! declaring variables integer :: total real :: average complex :: cx logical :: done character(len=80) :: message ! a string of 80 characters !assigning values total = 20000 average = 1666.67 done = .true. message = "A big Hello from Tutorials Point" cx = (3.0, 5.0) ! cx = 3.0 + 5.0i Print *, total Print *, average Print *, cx Print *, done Print *, message end program variableTesting
當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:
20000 1666.67004 (3.00000000, 5.00000000 ) T A big Hello from Tutorials Point
常數(shù)指的是程序不能在執(zhí)行期間改變的固定值。這些固定值也被稱為文字 。
常量可以是任何基本的數(shù)據(jù)類型,如整型常量,一個(gè)浮點(diǎn)常量,字符常量,復(fù)雜的常量或字符串文本。只有兩個(gè)邏輯常量:.TRUE。和.FALSE。
該常量將被視為就像普通變量,但它們的值不能將其定義后進(jìn)行修改。
有兩種類型的常量:
文字常量有值,但沒有名字。
例如,以下是文字常量:
類型 | 例 |
---|---|
整型常量 | 01-1 300 123456789 |
實(shí)常數(shù) | 0.0 1.0 -1.0 123.456 7.1E + 10 -52.715E-30 |
復(fù)常數(shù) | (0.0,0.0)(-123.456E + 30,987.654E-29) |
邏輯常量 | 。真正。 。假。 |
字符常量 | “PQR”“一”“123'abc $%#@!” “一帖”“” “PQR''A''123”ABC $%#@! '撇號(hào)''' |
命名常量的值以及名稱。
命名常量應(yīng)當(dāng)在程序或過程的開始進(jìn)行聲明,就像一個(gè)變量的類型聲明,表明其名稱和類型。命名常量聲明的參數(shù)屬性。例如,
real, parameter :: pi = 3.1415927
例
下面的程序計(jì)算位移,由于在重力作用下垂直運(yùn)動(dòng)。
program gravitationalDisp ! this program calculates vertical motion under gravity implicit none ! gravitational acceleration real, parameter :: g = 9.81 ! variable declaration real :: s ! displacement real :: t ! time real :: u ! initial speed ! assigning values t = 5.0 u = 50 ! displacement s = u * t - g * (t**2) / 2 ! output print *, "Time = ", t print *, 'Displacement = ',s end program gravitationalDisp
當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:
Time = 5.00000000 Displacement = 127.374992
運(yùn)算符是告訴執(zhí)行特定數(shù)學(xué)或邏輯操作的編譯器的符號(hào)。 Fortran語言提供了以下類型的運(yùn)算符:
讓我們來看看所有這些類型的運(yùn)營商逐一。
下表列出了所有的Fortran支持的算術(shù)運(yùn)算符。假設(shè)變量A持有5,然后變量B持有3:
操作者 | 描述 | 例 |
---|---|---|
+ | 除了運(yùn)營商,增加了兩個(gè)操作數(shù)。 | A + B將給8 |
- | 減法操作,減去從所述第一第二操作數(shù)。 | A - B就給予2 |
* | 乘法運(yùn)算,乘兩個(gè)操作數(shù)。 | A * B將給予15 |
/ | 除法運(yùn)算符,由去分子分裂分子。 | A / B將給予1 |
** | 乘方運(yùn)算引發(fā)一個(gè)操作數(shù)到其他的力量。 | A ** B就給予125 |
下表列出了所有的Fortran支持的關(guān)系運(yùn)算符。假設(shè)變量A持有10和變量B持有20,則:
操作者 | 當(dāng)量 | 描述 | 例 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
== | .EQ。 | 檢查,如果兩個(gè)操作數(shù)的值相等與否,如果是,則條件變?yōu)檎妗? | (A == B)是不正確的。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/ = | .NE。 | 檢查,如果兩個(gè)操作數(shù)的值相等與否,如果值不相等,則條件變?yōu)檎妗? | (A!= B)為真。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> | .GT。 | 檢查左操作數(shù)的值大于右操作數(shù)的值,如果是,則條件為真。 | (A> B)是不正確的。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
= | .GE。 | 檢查左操作數(shù)的值大于或等于右邊的操作數(shù)的值,如果是,則條件為真。 | (A> = B)是不正確的。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
T1 P1 = 1打印*,P1打印*,T1 P1 = P1 + 4 *打印,打印P1 *,T1 T1 = 8打印*,P1打印*,T1結(jié)束程序pointerExample 當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果: 1 1 5 5 8 8 一個(gè)指針可以是:
另外,在上述程序中,我們已關(guān)聯(lián)的指示器p1,與目標(biāo)T1,使用=>運(yùn)算符。相關(guān)的功能,測(cè)試指針的關(guān)聯(lián)狀態(tài)。 該廢止聲明的關(guān)聯(lián)從一個(gè)目標(biāo)的指針。 抵消不清空目標(biāo),因?yàn)榭赡艽嬖谝粋€(gè)以上的指針指向同一目標(biāo)。然而,排空指針意味著無效也。 例1 下面的示例演示的概念: program pointerExample implicit none integer, pointer :: p1 integer, target :: t1 integer, target :: t2 p1=>t1 p1 = 1 Print *, p1 Print *, t1 p1 = p1 + 4 Print *, p1 Print *, t1 t1 = 8 Print *, p1 Print *, t1 nullify(p1) Print *, t1 p1=>t2 Print *, associated(p1) Print*, associated(p1, t1) Print*, associated(p1, t2) !what is the value of p1 at present Print *, p1 Print *, t2 p1 = 10 Print *, p1 Print *, t2 end program pointerExample 當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果: 1 1 5 5 8 8 8 T F T 952754640 952754640 10 10 請(qǐng)注意,每次運(yùn)行代碼時(shí),內(nèi)存地址會(huì)有所不同。 例2 program pointerExample implicit none integer, pointer :: a, b integer, target :: t integer :: n t= 1 a=>t t = 2 b => t n = a + b Print *, a, b, t, n end program pointerExample 當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果: 2 2 2 4 Fortran語言 - 基本輸入輸出迄今為止,我們已經(jīng)看到,我們可以使用打印*語句讀取分別使用讀取*語句鍵盤和顯示輸出數(shù)據(jù)到屏幕上。輸入輸出的形式是自由格式的 I / O,它被稱為列表控制的輸入輸出。 自由格式簡單的I / O的形式為: read(*,*) item1, item2, item3... print *, item1, item2, item3 write(*,*) item1, item2, item3... 然而,格式化I / O讓您的數(shù)據(jù)傳輸更多的靈活性。 格式化輸入輸出格式化輸入輸出有語法如下: read fmt, variable_list print fmt, variable_list write fmt, variable_list 哪里,
格式規(guī)范定義,其中顯示格式化的數(shù)據(jù)的方式。它由一個(gè)字符串,包含編輯描述符的括號(hào)中的列表。 一個(gè)編輯描述符指定的精確格式,例如,寬度,其中顯示后小數(shù)點(diǎn)等,數(shù)字字符和數(shù)字。 例如: Print "(f6.3)", pi 下表描述了描述:
以下符號(hào)用于與格式描述符:
例1 program printPi pi = 3.141592653589793238 Print "(f6.3)", pi Print "(f10.7)", pi Print "(f20.15)", pi Print "(e16.4)", pi/100 end program printPi 當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果: 3.142 3.1415927 3.141592741012573 0.3142E-01 例2 program printName implicit none character (len=15) :: first_name print *,' Enter your first name.' print *,' Up to 20 characters, please' read *,first_name print "(1x,a)",first_name end program printName 當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:(假設(shè)用戶輸入的名稱扎拉) Enter your first name. Up to 20 characters, please Zara 例3 program formattedPrint implicit none real :: c = 1.2786456e-9, d = 0.1234567e3 integer :: n = 300789, k = 45, i = 2 character (len=15) :: str="Tutorials Point" print "(i6)", k print "(i6.3)", k print "(3i10)", n, k, i print "(i10,i3,i5)", n, k, i print "(a15)",str print "(f12.3)", d print "(e12.4)", c print '(/,3x,"n = ",i6, 3x, "d = ",f7.4)', n, d end program formattedPrint 當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果: 45 045 300789 45 2 300789 45 2 Tutorials Point 123.457 0.1279E-08 n = 300789 d = ******* 該聲明的格式格式語句允許您在一個(gè)聲明中混合和匹配字符,整數(shù)和實(shí)輸出。下面的例子說明了這一點(diǎn): program productDetails implicit none character (len=15) :: name integer :: id real :: weight name = 'Ardupilot' id = 1 weight = 0.08 print *,' The product details are' print 100 100 format (7x,'Name:', 7x, 'Id:', 1x, 'Weight:') print 200, name, id, weight 200 format(1x, a, 2x, i3, 2x, f5.2) end program productDetails 當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果: The product details are Name: Id: Weight: Ardupilot 1 0.08 Fortran語言 - 文件輸入輸出Fortran語言,您可以讀取數(shù)據(jù),并將數(shù)據(jù)寫入到文件中。 在最后一章,你看到了如何讀取數(shù)據(jù),并將數(shù)據(jù)寫入到終端。在本章中,您將學(xué)習(xí)用Fortran語言提供的文件輸入和輸出功能。 可以讀取和寫入到一個(gè)或多個(gè)文件。開放,寫入,讀取和CLOSE語句,可以實(shí)現(xiàn)這一目標(biāo)。 打開和關(guān)閉文件使用文件之前,必須先打開該文件。 打開命令用來打開文件進(jìn)行讀取或?qū)懭?。該命令的最簡單的形式是? open (unit = number, file = "name"). 然而,開放的聲明可能有一個(gè)一般形式: open (list-of-specifiers) 下表介紹最常用的指示符:
該文件已被打開后,它是由讀寫語句訪問。一旦這樣做,就應(yīng)該使用CLOSE語句關(guān)閉。 close語句的語法如下: close ([UNIT=]u[,IOSTAT=ios,ERR=err,STATUS=sta]) 請(qǐng)注意,括號(hào)中的參數(shù)是可選的。 例 本實(shí)施例說明打開一個(gè)新文件的某些數(shù)據(jù)寫入到文件中。 program outputdata implicit none real, dimension(100) :: x, y real, dimension(100) :: p, q integer :: i ! data do i=1,100 x(i) = i * 0.1 y(i) = sin(x(i)) * (1-cos(x(i)/3.0)) end do ! output data into a file open(1, file='data1.dat', status='new') do i=1,100 write(1,*) x(i), y(i) end do close(1) end program outputdata 當(dāng)上述代碼被編譯和執(zhí)行時(shí),它創(chuàng)建的文件data1.dat和x和y數(shù)組值寫入到其中。然后關(guān)閉該文件。 讀取和寫入到文件 的讀寫語句分別用于讀和分別寫入到文件中。 他們的語法如下: read ([UNIT=]u, [FMT=]fmt, IOSTAT=ios, ERR=err, END=s) write([UNIT=]u, [FMT=]fmt, IOSTAT=ios, ERR=err, END=s) 大多數(shù)符的已在上表中進(jìn)行討論。 結(jié)束= S說明是一個(gè)語句標(biāo)號(hào)所在的程序跳轉(zhuǎn),當(dāng)它到達(dá)檔案結(jié)尾。 例 此示例演示讀取和寫入到文件中。 在這個(gè)項(xiàng)目中,我們從文件中讀取,我們?cè)谧詈笠粋€(gè)例子創(chuàng)建,data1.dat,并在屏幕上顯示。 program outputdata implicit none real, dimension(100) :: x, y real, dimension(100) :: p, q integer :: i ! data do i=1,100 x(i) = i * 0.1 y(i) = sin(x(i)) * (1-cos(x(i)/3.0)) end do ! output data into a file open(1, file='data1.dat', status='new') do i=1,100 write(1,*) x(i), y(i) end do close(1) ! opening the file for reading open (2, file='data1.dat', status='old') do i=1,100 read(2,*) p(i), q(i) end do close(2) do i=1,100 write(*,*) p(i), q(i) end do end program outputdata 當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果: 0.100000001 5.54589933E-05 0.200000003 4.41325130E-04 0.300000012 1.47636665E-03 0.400000006 3.45637114E-03 0.500000000 6.64328877E-03 0.600000024 1.12552457E-02 0.699999988 1.74576249E-02 0.800000012 2.53552198E-02 0.900000036 3.49861123E-02 1.00000000 4.63171229E-02 1.10000002 5.92407547E-02 1.20000005 7.35742599E-02 1.30000007 8.90605897E-02 1.39999998 0.105371222 1.50000000 0.122110792 1.60000002 0.138823599 1.70000005 0.155002072 1.80000007 0.170096487 1.89999998 0.183526158 2.00000000 0.194692180 2.10000014 0.202990443 2.20000005 0.207826138 2.29999995 0.208628103 2.40000010 0.204863414 2.50000000 0.196052119 2.60000014 0.181780845 2.70000005 0.161716297 2.79999995 0.135617107 2.90000010 0.103344671 3.00000000 6.48725405E-02 3.10000014 2.02930309E-02 3.20000005 -3.01767997E-02 3.29999995 -8.61928314E-02 3.40000010 -0.147283033 3.50000000 -0.212848678 3.60000014 -0.282169819 3.70000005 -0.354410470 3.79999995 -0.428629100 3.90000010 -0.503789663 4.00000000 -0.578774154 4.09999990 -0.652400017 4.20000029 -0.723436713 4.30000019 -0.790623367 4.40000010 -0.852691114 4.50000000 -0.908382416 4.59999990 -0.956472993 4.70000029 -0.995793998 4.80000019 -1.02525222 4.90000010 -1.04385209 5.00000000 -1.05071592 5.09999990 -1.04510069 5.20000029 -1.02641726 5.30000019 -0.994243503 5.40000010 -0.948338211 5.50000000 -0.888650239 5.59999990 -0.815326691 5.70000029 -0.728716135 5.80000019 -0.629372001 5.90000010 -0.518047631 6.00000000 -0.395693362 6.09999990 -0.263447165 6.20000029 -0.122622721 6.30000019 2.53026206E-02 6.40000010 0.178709000 6.50000000 0.335851669 6.59999990 0.494883657 6.70000029 0.653881252 6.80000019 0.810866773 6.90000010 0.963840425 7.00000000 1.11080539 7.09999990 1.24979746 7.20000029 1.37891412 7.30000019 1.49633956 7.40000010 1.60037732 7.50000000 1.68947268 7.59999990 1.76223695 7.70000029 1.81747139 7.80000019 1.85418403 7.90000010 1.87160957 8.00000000 1.86922085 8.10000038 1.84674001 8.19999981 1.80414569 8.30000019 1.74167395 8.40000057 1.65982044 8.50000000 1.55933595 8.60000038 1.44121361 8.69999981 1.30668485 8.80000019 1.15719533 8.90000057 0.994394958 9.00000000 0.820112705 9.10000038 0.636327863 9.19999981 0.445154816 9.30000019 0.248800844 9.40000057 4.95488606E-02 9.50000000 -0.150278628 9.60000038 -0.348357052 9.69999981 -0.542378068 9.80000019 -0.730095863 9.90000057 -0.909344316 10.0000000 -1.07807255 Fortran語言 - 程序過程是一組執(zhí)行一個(gè)明確的任務(wù),可以從你的程序中調(diào)用語句。信息(或數(shù)據(jù))被傳遞給調(diào)用的程序,向步驟作為參數(shù)。 有兩種類型的程序:
功能函數(shù)是返回一個(gè)單一的量的過程。函數(shù)不應(yīng)該修改其參數(shù)。 返回的數(shù)量被稱為函數(shù)值 ,并且它由函數(shù)名表示。 句法: 語法功能如下: function name(arg1, arg2, ....) [declarations, including those for the arguments] [executable statements] end function [name] 下面的示例演示一個(gè)名為功能area_of_circle。它計(jì)算半徑為r的圓的面積。 program calling_func real :: a a = area_of_circle(2.0) Print *, "The area of a circle with radius 2.0 is" Print *, a end program calling_func function area_of_circle (r) ! this function computes the area of a circle with radius r implicit none ! function result real :: area_of_circle ! dummy arguments real :: r ! local variables real :: pi pi = 4 * atan (1.0) area_of_circle = pi * r**2 end function area_of_circle 當(dāng)你編譯和執(zhí)行上面的程序,它會(huì)產(chǎn)生以下結(jié)果: The area of a circle with radius 2.0 is 12.5663710 請(qǐng)注意:
結(jié)果選項(xiàng) 如果你想返回的值存儲(chǔ)在其它一些名稱與功能名稱,您可以使用結(jié)果選項(xiàng)。 您可以指定返回變量名: function name(arg1, arg2, ....) result (return_var_name) [declarations, including those for the arguments] [executable statements] end function [name] 子程序子程序沒有返回值,但可以修改其參數(shù)。 句法 subroutine name(arg1, arg2, ....) [declarations, including those for the arguments] [executable statements] end subroutine [name] 調(diào)用子程序 您需要使用呼叫語句調(diào)用的子程序。 下面的例子演示了一個(gè)子程序交換,改變其參數(shù)值的定義和使用。 program calling_func implicit none real :: a, b a = 2.0 b = 3.0 Print *, "Before calling swap" Print *, "a = ", a Print *, "b = ", b call swap(a, b) Print *, "After calling swap" Print *, "a = ", a Print *, "b = ", b end program calling_func subroutine swap(x, y) implicit none real :: x, y, temp temp = x x = y y = temp end subroutine swap 當(dāng)你編譯和執(zhí)行上面的程序,它會(huì)產(chǎn)生以下結(jié)果: Before calling swap a = 2.00000000 b = 3.00000000 After calling swap a = 3.00000000 b = 2.00000000 指定參數(shù)的意圖這樣做的目的屬性允許你指定與參數(shù)在程序中使用的意圖。下表提供的意圖屬性的值:
下面的例子演示了這個(gè)概念: program calling_func implicit none real :: x, y, z, disc x= 1.0 y = 5.0 z = 2.0 call intent_example(x, y, z, disc) Print *, "The value of the discriminant is" Print *, disc end program calling_func subroutine intent_example (a, b, c, d) implicit none ! dummy arguments real, intent (in) :: a real, intent (in) :: b real, intent (in) :: c real, intent (out) :: d d = b*b - 4.0*a*c end subroutine intent_example 當(dāng)你編譯和執(zhí)行上面的程序,它會(huì)產(chǎn)生以下結(jié)果: The value of the discriminant is 17.0000000 遞歸過程遞歸當(dāng)編程語言,您可以調(diào)用同一個(gè)函數(shù)內(nèi)的函數(shù)發(fā)生。這就是所謂的函數(shù)的遞歸調(diào)用。 當(dāng)一個(gè)過程調(diào)用本身,直接或間接地被稱為遞歸過程。你應(yīng)該通過其聲明之前遞歸字前面的聲明這種類型的程序。 當(dāng)一個(gè)函數(shù)被遞歸使用, 結(jié)果選項(xiàng)被使用。 以下是一個(gè)例子,它計(jì)算階乘用于使用遞歸過程的給定數(shù)量: program calling_func implicit none integer :: i, f i = 15 Print *, "The value of factorial 15 is" f = myfactorial(15) Print *, f end program calling_func recursive function myfactorial (n) result (fac) ! computes the factorial of n (n!) implicit none ! function result integer :: fac ! dummy arguments integer, intent (in) :: n select case (n) case (0:1) fac = 1 case default fac = n * myfactorial (n-1) end select end function myfactorial 內(nèi)部程序當(dāng)一個(gè)過程被包含在程序中,它被稱為程序的內(nèi)部程序。包含的內(nèi)部程序的語法如下: program program_name implicit none ! type declaration statements ! executable statements . . . contains ! internal procedures . . . end program program_name 下面的例子演示了這個(gè)概念: program mainprog implicit none real :: a, b a = 2.0 b = 3.0 Print *, "Before calling swap" Print *, "a = ", a Print *, "b = ", b call swap(a, b) Print *, "After calling swap" Print *, "a = ", a Print *, "b = ", b contains subroutine swap(x, y) real :: x, y, temp temp = x x = y y = temp end subroutine swap end program mainprog 當(dāng)你編譯和執(zhí)行上面的程序,它會(huì)產(chǎn)生以下結(jié)果: Before calling swap a = 2.00000000 b = 3.00000000 After calling swap a = 3.00000000 b = 2.00000000 Fortran語言 - 模塊模塊就像一個(gè)包,你可以保持你的功能和子程序,如果你正在編寫一個(gè)非常大的項(xiàng)目,或者你的函數(shù)或子程序可以在多個(gè)程序中使用。 模塊為您提供多個(gè)文件之間的分裂你的程序的方式。 模塊用于:
一個(gè)模塊的語法一個(gè)模塊由兩部分組成:
模塊的一般形式是: module name [statement declarations] [contains [subroutine and function definitions] ] end module [name] 使用一個(gè)模塊到你的程序您可以將在通過使用語句程序或子程序模塊: use name 請(qǐng)注意
例 下面的例子演示了這個(gè)概念: module constants implicit none real, parameter :: pi = 3.1415926536 real, parameter :: e = 2.7182818285 contains subroutine show_consts() print*, "Pi = ", pi print*, "e = ", e end subroutine show_consts end module constants program module_example use constants implicit none real :: x, ePowerx, area, radius x = 2.0 radius = 7.0 ePowerx = e ** x area = pi * radius**2 call show_consts() print*, "e raised to the power of 2.0 = ", ePowerx print*, "Area of a circle with radius 7.0 = ", area end program module_example 當(dāng)你編譯和執(zhí)行上面的程序,它會(huì)產(chǎn)生以下結(jié)果: Pi = 3.14159274 e = 2.71828175 e raised to the power of 2.0 = 7.38905573 Area of a circle with radius 7.0 = 153.938049 模塊中的變量和子程序的無障礙缺省情況下,一個(gè)模塊中的所有的變量和子程序被提供給正在使用該模塊的代碼,通過使用語句的程序。 但是,你可以控制的模塊代碼使用私人和公共屬性的可訪問性。當(dāng)你聲明一些變量或子程序?yàn)樗接?,這不是可用的模塊外。 例 下面的例子說明了這一概念: 在前面的例子中,我們有兩個(gè)模塊變量,e和圓周率。讓我們把他們的私人和觀察輸出: module constants implicit none real, parameter,private :: pi = 3.1415926536 real, parameter, private :: e = 2.7182818285 contains subroutine show_consts() print*, "Pi = ", pi print*, "e = ", e end subroutine show_consts end module constants program module_example use constants implicit none real :: x, ePowerx, area, radius x = 2.0 radius = 7.0 ePowerx = e ** x area = pi * radius**2 call show_consts() print*, "e raised to the power of 2.0 = ", ePowerx print*, "Area of a circle with radius 7.0 = ", area end program module_example 當(dāng)你編譯和執(zhí)行上面的程序,它提供了以下錯(cuò)誤信息: ePowerx = e ** x 1 Error: Symbol 'e' at (1) has no IMPLICIT type main.f95:19.13: area = pi * radius**2 1 Error: Symbol 'pi' at (1) has no IMPLICIT type 由于e和圓周率,既被聲明為私有,module_example無法再訪問這些變量程序。 然而,其他模塊的子程序可以訪問它們: module constants implicit none real, parameter,private :: pi = 3.1415926536 real, parameter, private :: e = 2.7182818285 contains subroutine show_consts() print*, "Pi = ", pi print*, "e = ", e end subroutine show_consts function ePowerx(x)result(ePx) implicit none real::x real::ePx ePx = e ** x end function ePowerx function areaCircle(r)result(a) implicit none real::r real::a a = pi * r**2 end function areaCircle end module constants program module_example use constants implicit none call show_consts() Print*, "e raised to the power of 2.0 = ", ePowerx(2.0) print*, "Area of a circle with radius 7.0 = ", areaCircle(7.0) end program module_example 當(dāng)你編譯和執(zhí)行上面的程序,它會(huì)產(chǎn)生以下結(jié)果: Pi = 3.14159274 e = 2.71828175 e raised to the power of 2.0 = 7.38905573 Area of a circle with radius 7.0 = 153.938049 Fortran語言 - 內(nèi)部函數(shù)征函數(shù)是被提供作為Fortran語言的一部分的一些常見和重要的功能。我們的陣列,字符和字符串的章節(jié)已經(jīng)討論其中的一些功能。 本征函數(shù)可以被歸類為:
我們?cè)陉嚵姓鹿?jié)討論的陣列功能。在下面的部分,我們提供的其他類別所有這些功能的簡要說明。 在功能名稱列,
數(shù)值函數(shù)
例 program numericFunctions implicit none ! define constants !define variables real :: a, b complex :: z !values for a, b a = 15.2345 b = -20.7689 write(*,*) 'abs(a): ',abs(a),' abs(b): ',abs(b) write(*,*) 'aint(a): ',aint(a),' aint(b): ',aint(b) write(*,*) 'ceiling(a): ',ceiling(a),' ceiling(b): ',ceiling(b) write(*,*) 'floor(a): ',floor(a),' floor(b): ',floor(b) z = cmplx(a, b) write(*,*) 'z: ',z end program numericFunctions 當(dāng)你編譯和執(zhí)行上面的程序,它會(huì)產(chǎn)生以下結(jié)果: abs(a): 15.2344999 abs(b): 20.7688999 aint(a): 15.0000000 aint(b): -20.0000000 ceiling(a): 16 ceiling(b): -20 floor(a): 15 floor(b): -21 z: (15.2344999, -20.7688999) 數(shù)學(xué)函數(shù)
例 下面的程序一個(gè)時(shí)間后分別射彈的計(jì)算的水平和垂直位置x和y,叔: 其中,X = UT COS A和Y = UT罪 - 克T2 / 2 program projectileMotion implicit none ! define constants real, parameter :: g = 9.8 real, parameter :: pi = 3.1415927 !define variables real :: a, t, u, x, y !values for a, t, and u a = 45.0 t = 20.0 u = 10.0 ! convert angle to radians a = a * pi / 180.0 x = u * cos(a) * t y = u * sin(a) * t - 0.5 * g * t * t write(*,*) 'x: ',x,' y: ',y end program projectileMotion 當(dāng)你編譯和執(zhí)行上面的程序,它會(huì)產(chǎn)生以下結(jié)果: x: 141.421356 y: -1818.57861 數(shù)字查詢函數(shù)這些功能與整數(shù)的某型號(hào)和浮點(diǎn)運(yùn)算工作。該函數(shù)返回相同種類的變量X,它可以是真實(shí)的,在某些情況下整數(shù)的數(shù)的屬性。
浮點(diǎn)操作函數(shù)
位操作功能
字符函數(shù)
種類函數(shù)
邏輯功能
Fortran語言 - 數(shù)字精度我們已經(jīng)討論了,在舊版本的Fortran,有兩個(gè)真正的類型:默認(rèn)的實(shí)型和雙精度型。 然而,F(xiàn)ortran語言90/95提供了真實(shí)和整數(shù)數(shù)據(jù)類型通過一種 specifie精確的控制。 那種屬性不同類型的數(shù)字是計(jì)算機(jī)內(nèi)部存儲(chǔ)方式不同。 那種屬性允許您指定一個(gè)數(shù)字在內(nèi)部存儲(chǔ)。例如, real, kind = 2 :: a, b, c real, kind = 4 :: e, f, g integer, kind = 2 :: i, j, k integer, kind = 3 :: l, m, n 在上述聲明中,實(shí)變量E,F(xiàn)和g具有比真實(shí)變量a,b和c更精確。整數(shù)變數(shù)l,m和n,可以存儲(chǔ)較大的值,并具有用于存儲(chǔ)比整數(shù)變量I,J和k多個(gè)數(shù)字。雖然這是依賴于機(jī)器。 例 program kindSpecifier implicit none real(kind = 4) :: a, b, c real(kind = 8) :: e, f, g integer(kind = 2) :: i, j, k integer(kind = 4) :: l, m, n integer :: kind_a, kind_i, kind_e, kind_l kind_a = kind(a) kind_i = kind(i) kind_e = kind(e) kind_l = kind(l) print *,'default kind for real is', kind_a print *,'default kind for int is', kind_i print *,'extended kind for real is', kind_e print *,'default kind for int is', kind_l end program kindSpecifier 當(dāng)你編譯和執(zhí)行上面的程序它產(chǎn)生以下結(jié)果: default kind for real is 4 default kind for int is 2 extended kind for real is 8 default kind for int is 4 查詢變量的大小有許多內(nèi)在的功能,使您可以詢問數(shù)字的大小。 例如,BIT_SIZE(ⅰ)內(nèi)部函數(shù)指定用于存儲(chǔ)的位數(shù)。對(duì)于實(shí)數(shù), 精度(x)的內(nèi)部函數(shù),返回的精度小數(shù)位數(shù),而范圍(x)的內(nèi)部函數(shù)返回指數(shù)的十進(jìn)制范圍內(nèi)。 例 program getSize implicit none real (kind = 4) :: a real (kind = 8) :: b integer (kind = 2) :: i integer (kind = 4) :: j print *,'precision of real(4) =', precision(a) print *,'precision of real(8) =', precision(b) print *,'range of real(4) =', range(a) print *,'range of real(8) =', range(b) print *,'maximum exponent of real(4) =' , maxexponent(a) print *,'maximum exponent of real(8) =' , maxexponent(b) print *,'minimum exponent of real(4) =' , minexponent(a) print *,'minimum exponent of real(8) =' , minexponent(b) print *,'bits in integer(2) =' , bit_size(i) print *,'bits in integer(4) =' , bit_size(j) end program getSize 當(dāng)你編譯和執(zhí)行上面的程序它產(chǎn)生以下結(jié)果: precision of real(4) = 6 precision of real(8) = 15 range of real(4) = 37 range of real(8) = 307 maximum exponent of real(4) = 128 maximum exponent of real(8) = 1024 minimum exponent of real(4) = -125 minimum exponent of real(8) = -1021 bits in integer(2) = 16 bits in integer(4) = 32 獲取種類值Fortran語言提供了兩個(gè)內(nèi)部函數(shù)來獲得一種價(jià)值整數(shù)和實(shí)數(shù)的精度要求:
該selected_real_kind函數(shù)返回一個(gè)整數(shù),是必要的一個(gè)給定的小數(shù)精度p和小數(shù)指數(shù)范圍r的那種類型的參數(shù)值。小數(shù)精度是顯著的位數(shù),而小數(shù)指數(shù)范圍規(guī)定了最小和最大可表示數(shù)。因此,該范圍是從10-R 10 + R。 例如,selected_real_kind(P = 10,R = 99)返回需要10精確到小數(shù)點(diǎn)的那種價(jià)值,射程至少10-99到10 + 99。 例 program getKind implicit none integer:: i i = selected_real_kind (p = 10, r = 99) print *,'selected_real_kind (p = 10, r = 99)', i end program getKind 當(dāng)你編譯和執(zhí)行上面的程序它產(chǎn)生以下結(jié)果: selected_real_kind (p = 10, r = 99) 8 Fortran語言 - 程序庫有各種各樣的Fortran工具和庫。有些是免費(fèi)的,有些是有償服務(wù)。 以下是一些免費(fèi)的庫:
以下庫是不是免費(fèi)的:
Fortran語言 - 編程風(fēng)格編程風(fēng)格是所有關(guān)于在開發(fā)項(xiàng)目如下一些規(guī)則。這些好的做法傳授像可讀性價(jià)值觀和明確性到您的程序。 一個(gè)好的程序應(yīng)該具有以下特點(diǎn):
例如,如果你做類似下面的評(píng)論,它不會(huì)有很大幫助: ! loop from 1 to 10 do i=1,10 不過,如果你正在計(jì)算二項(xiàng)式系數(shù),需要這個(gè)循環(huán)NCR的那么像這樣的評(píng)論會(huì)有所幫助: ! loop to calculate nCr do i=1,10
real :: x x = sin(y) + 1.0 if (x >= 0.0) then z = sqrt(x) end if
Fortran語言 - 調(diào)試程序調(diào)試器工具被用來搜索在程序中的錯(cuò)誤。 調(diào)試器程序通過代碼幾步之遙,可以讓你的程序的執(zhí)行過程中檢查變量和其他數(shù)據(jù)對(duì)象的值。 它加載的源代碼,你都應(yīng)該運(yùn)行調(diào)試器內(nèi)的程序。調(diào)試器調(diào)試程序是:
斷點(diǎn)指定程序就停止了,代碼的臨界線后,專門。這些變量后,程序執(zhí)行在斷點(diǎn)處進(jìn)行檢查。 調(diào)試程序也被檢查行源代碼行。 觀看點(diǎn)是在需要某些變量的值進(jìn)行檢查,特別是后一個(gè)讀或?qū)懖僮鞯母鼽c(diǎn)。 gdb調(diào)試器gdb調(diào)試器,GNU調(diào)試自帶的Linux操作系統(tǒng)。對(duì)于X窗口系統(tǒng),GDB帶有一個(gè)圖形界面和程序被命名為xxgdb。 下表列出了GDB的一些命令:
dbx調(diào)試器還有另外一個(gè)調(diào)試器,dbx調(diào)試器的Linux版本。 下表列出了dbx中的一些命令:
以上內(nèi)容是否對(duì)您有幫助:
|
更多建議: