主题中讨论的其他器件:MSP430WARE
正如在链接到此问题的前一个线程("Driver Lib FR5xx_6xx NDEBUG")中所讨论的、 DriverLib 在 driverlib 文件 hw_memmap.h 中定义了 NDEBUG 宏、这似乎是非标准做法。 非标准、因为许多(大多数?) 程序员希望默认情况下不定义 NDEBUG、 并且许多程序员接受过在命令行或特定于项目的文件中定义 NDEBUG 的培训。
因此、如果用户包含 DriverLib 中的头文件、则会禁用源代码中后面的任何 assert()语句(实际上是宏)、这会使大多数程序员感到意外。 IOW 它违反了最少意外的原则。
要使 DriverLib 中的断言默认情况下处于禁用状态、IMO DriverLib 应使用其自身的机制、而不是使用 NDEBUG 符号。
msp430ware_3_80_04_05