我想指示Ada编译器在两个不同的代码块之间进行选择,具体取决于预定义的静态编译器指令,例如"DEBUG"或"RELEASE".我想做这样的事情:
如果DEBUG然后<COMPILE THES CODE>结束if;
如果RELEASE那么<COMPILE THIS OTHER CODE>结束if;
C#和其他语言为此提供了#define指令.Ada有类似的东西吗?如果没有,这在Ada中是如何完成的?
良好的阿达风格是像你一样把它写准确,确保实体Debug和Release是静态的.
一种方法是做一个包,比方说 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 .)