Fortran變數未初始化,該如何設定提醒?

2021-09-03 10:16:52 字數 433 閱讀 6716

程式中存在未經過初始化就引用的變數

使用intel編譯器時,未經初始化的自動變數在執行時會具有隨機的初始值。由於語言標準和具體編譯器實現的原因,某些平台上的編譯器具有自動把未初始化的變數設為0的選項。那麼在這類平台上開發進行fortran程式開發的人員很可能會養成變數不初始化就加以引用的習慣。當這些程式被移植到新平台上後,由於intel的編譯器不支援這一功能,那麼程式編譯雖然可以通過,但執行時就會輸出隨機變化的不確定值。

操作:專案,屬性,fortran,run-time,check uninitialized variables , yes

注意:uninitialized variables只對簡單變數有效,對陣列無效。如果簡單變數a未給初值,而用於 b=3.0*a,則編譯時將報錯,但是如果a是個陣列變數,則不報錯。(不知後來的intel vf版本有沒有改進?)

未初始化全域性變數

未初始化全域性變數,這名字就很直白,就是 c 程式中定義成全域性作用域而又沒有初始化的變數,我們知道這種變數在程式執行後是被自動初始化為 全0 的。編譯器編譯的時候會將這類變數收集起來集中放置到 bss 段中,這個段只記錄了段長,沒有實際上的內容 全是0,沒必要儲存 在程式被裝載時作業系統會為它分配...

關於未初始化全域性變數

前幾天發現未初始化全域性變數一些特性,後來在一篇部落格上發現有人說過這個問題 這是原博文位址 blog.csdn.net liuqiaoyu080512 article details 8455652 然後結合原博文,自己又做了幾個實驗 以下算是自己實驗一遍以後的總結 首先,自己曾經以為未初化的全域...

未初始化指標

今天碰到個未初始化指標的問題。大意如下 class a public b m pb class b blah,blah,blah void func a pa b pb new b 初始化pb.pa m pb pb std vector a aptrs apters.push back pa fun...