Ada Programming/Keywords/use

< Ada Programming‎ | Keywords

Use clauseEdit

At library levelEdit

This use clause make the content of a package immediately visible.

with Ada.Text_IO;   use Ada.Text_IO;

procedure Hello is
begin
   Put_Line("Hello, world!");
   New_Line;
   Put_Line("I am an Ada program with package use.");
end Hello;

If readability is your main concern then you should avoid this type of use clause. However it is needed to resolve a name clash between the packages which are imported and the package currently compiled.

At declaration levelEdit

File: hello_world_3.adb (view, plain text, download page, browse all)
with Ada.Text_IO;

procedure Hello is
   use Ada.Text_IO;
begin
   Put_Line("Hello, world!");
   New_Line;
   Put_Line("I am an Ada program with package use.");
end Hello;

For typesEdit

with Ada.Text_IO;

procedure Hello is
   use type Ada.Text_IO.File_Type
begin
   Ada.Text_IO.Put_Line("Hello, world!");
   Ada.Text_IO.New_Line;
   Ada.Text_IO.Put_Line("I am an Ada program with package use.");
end Hello;

Representation clauseEdit

For attributesEdit

type Day_Of_Month is range 1 .. 31;            
for  Day_Of_Month'Size      use 8;  -- 8 bits
for  Day_Of_Month'Alignment use 1;  -- 1 byte

For recordsEdit

type Device_Register is
    record
       Ready : Status_Flag;
       Error : Error_Flag;
       Data  : Unsigned_16;
    end record;

for  Device_Register use
    record
       Ready at 0 range  0 .. 0;
       Error at 0 range  1 .. 1;
       -- Reserved bits
       Data  at 0 range 16 .. 31;
    end record;

For enumerationsEdit

type Status_Flag is  (Ready, Wait);
for  Status_Flag use (Ready => 0, Wait => 1);

See alsoEdit