是否可以使用预处理指令来测试是否包含文件?
我想实现以下目标:
#ifincluded assert.h
#error "Should not include assert.h"
#endif
此刻,我知道assert.h
已定义_ASSERT_H
来解决此问题。在这种情况下,我可以使用#ifdef _ASSERT_H
。问题在于这是特定于实现的。
有没有更好的方法来实现这一目标?
答案 0 :(得分:5)
您可以简单地利用nav ul li a:hover{
border:0;
background-color:green;
color:yellow;
border-radius: 26px;
padding: 60px 10px;
}
@media screen and (max-width: 700px) {
nav ul li:hover{
background-color: black;
width: 100%;
border-radius: 20px;
}
}
本身是一个宏的事实,因此您可以执行
assert()
如果有人定义了自己的#ifdef assert
#error "Should not include assert.h"
#endif
宏,这当然也会引起抱怨,严格来说,这样做as long as they don't include any standard header是合法的事…
最终,我会重新考虑您认为您要在此处进行的操作。如果您必须确保某人不包括特定的标准标头,那么您很可能走错了路,并且如果您只是采用某种方法,那么很有可能找到一种更好但完全不同的方法退后一步,从一开始就重新思考。所以
有没有更好的方法来实现这一目标?
几乎可以肯定。但这与检测和调整行为无关,这取决于是否已包含标准库的特定部分……