12.13 Make宏中的注释

尽可能避免在宏值中添加注释。Posix公司指定从“#'签名直到结束这条线应该被忽略,这会带来不幸的后果即使在引号中也不允许使用。因此,以下可能导致编译时出现语法错误:

CPPFLAGS=“-DCOMMENT_CHAR='#'”

作为'CPPFLAGS公司'可以扩展为'“-DCOMMENT_CHAR='’.

大多数制作实现忽略了这一点,将单个和这里有双引号。此外,GNU制作让你把#'通过使用反斜杠将其转义为宏值,即。,\#’. 然而,这两种用法都不是可移植的。请参见生成规则中的注释,用于便携式替代品。

即使没有引用,评论也会产生令人惊讶的效果,因为它们前面的空白是变量值的一部分:

foo=bar#尾部注释打印:@echo“$(foo)。”

打印'巴。',这通常不是有意的,并且可能会暴露制作错误如下所述。