是什么导致了这个Ada编译错误"模棱两可的字符文字"?

时间:2015-04-29 04:26:09

标签: ada gnat

我有这个Ada代码。

with Ada.Text_IO; 
use Ada.Text_IO;

procedure for_Loop is
begin
    for Counter in 'A'..'Z' loop
        Put(Counter);   
    end loop;
    New_Line;
end for_Loop;

Ada编译器(gnatmake)输出这些错误消息。

gcc -c for_loop.adb
for_loop.adb:6:24: ambiguous character literal
for_loop.adb:6:24: possible interpretation: Character
for_loop.adb:6:24: possible interpretation: Wide_Character
for_loop.adb:6:24: possible interpretation: Wide_Wide_Character
gnatmake: "for_loop.adb" compilation error

代码有什么问题?

1 个答案:

答案 0 :(得分:4)

来自this post

  

问题在于' A'和' Z'可以来自Character或Wide_Character。最简单的修正是使类型明确;例如:对于字符范围内的字符' A' ..' Z'循环...结束循环;

with Ada.Text_IO; 
use Ada.Text_IO;

procedure for_Loop is
begin
    for Counter in Character range 'A'..'Z' loop
        Put(Counter);   
    end loop;
    New_Line;
end for_Loop;

这是oupput:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
相关问题