有没有办法指示Ada编译器选择代码块?

Gui*_*lle 4 ada

我想指示Ada编译器在两个不同的代码块之间进行选择,具体取决于预定义的静态编译器指令,例如"DEBUG"或"RELEASE".我想做这样的事情:

如果DEBUG然后<COMPILE THES CODE>结束if;

如果RELEASE那么<COMPILE THIS OTHER CODE>结束if;

C#和其他语言为此提供了#define指令.Ada有类似的东西吗?如果没有,这在Ada中是如何完成的?

Jac*_*sen 8

良好的阿达风格是像你一样把它写准确,确保实体DebugRelease是静态的.

一种方法是做一个包,比方说 Compilation_Mode,它有两种变体:

package Compilation_Mode is
   Debug   : constant Boolean := False;
   Release : constant Boolean := True;
end Compilation_Mode;
Run Code Online (Sandbox Code Playgroud)

package Compilation_Mode is
   Debug   : constant Boolean := True;
   Release : constant Boolean := False;
end Compilation_Mode;
Run Code Online (Sandbox Code Playgroud)

然后,让构建系统选择适当的包.(使用gprbuild,您可以package Naming在项目文件中使用a .)