一塊的自動生成的Ada代碼空範圍具有這一行:扭轉阿達
for digit in reverse 0 .. 1 loop
...
end loop;
導致蚋ADA發射:
sourcefile.adb:79:41:警告:環範圍可以爲null
sourcefile.adb:79:41:警告:邊界可能是南轅北轍
我想是與執行的循環什麼位= 1,則位= 0 ...但0..1 是一個零範圍,所以反轉它仍然產生一個零範圍,對吧?還是它?
一塊的自動生成的Ada代碼空範圍具有這一行:扭轉阿達
for digit in reverse 0 .. 1 loop
...
end loop;
導致蚋ADA發射:
sourcefile.adb:79:41:警告:環範圍可以爲null
sourcefile.adb:79:41:警告:邊界可能是南轅北轍
我想是與執行的循環什麼位= 1,則位= 0 ...但0..1 是一個零範圍,所以反轉它仍然產生一個零範圍,對吧?還是它?
你使用的是什麼Ada編譯器和版本?
這將編譯沒有警告或錯誤使用GNAT GPL 2013:
with Ada.Text_IO; use Ada.Text_IO;
procedure Reverse_Loop_Test is
begin
for Digit in reverse 0 .. 1 loop
Put_Line(Integer'Image(Digit));
end loop;
end Reverse_Loop_Test;
而且運行正常:
/home/wintermute/sandbox/reverse_loop_test
1
0
[2013-10-02 19:42:24] process terminated successfully (elapsed time: 00.10s)
Marc:你的示例產生了我的OP的警告。 「gnat --version」給出:「GNAT 4.5.4 版權所有1996-2010,Free Software Foundation,Inc.」所以看起來我必須更新。但是我在Gentoo Linux上,版本是最新的,所以我必須自己下載/構建gnat。雖然,輸出與你的一樣。 – Michael