我想指示Ada编译器在两个不同的代码块之间进行选择,具体取决于预定义的静态编译器指令,例如"DEBUG"或"RELEASE".我想做这样的事情:
如果DEBUG然后
如果RELEASE那么
C#和其他语言为此提供了#define指令.Ada有类似的东西吗?如果没有,这在Ada中是如何完成的?
良好的阿达风格是像你一样把它写准确,确保实体Debug
和Release
是静态的.
一种方法是做一个包,比方说 Compilation_Mode
,它有两种变体:
package Compilation_Mode is Debug : constant Boolean := False; Release : constant Boolean := True; end Compilation_Mode;
和
package Compilation_Mode is Debug : constant Boolean := True; Release : constant Boolean := False; end Compilation_Mode;
然后,让构建系统选择适当的包.(使用gprbuild
,您可以package Naming
在项目文件中使用a .)