【发布时间】:2020-09-24 09:47:11
【问题描述】:
我必须在 Linux 或 Windows 上重置系统日期和时间。
如何在不使用ifdef 或if defined 的情况下检查操作系统?
【问题讨论】:
-
你使用的是什么构建系统?
-
即使您检测到没有任何
ifdef的操作系统,您打算如何使用没有任何ifdef的操作系统专用API? -
为什么你不能使用 ifdef 以及你打算在不使用 ifdef 的情况下做什么特定于操作系统的事情?
-
简短的回答是你不能。如果您不检查特定的宏(无论是由您的编译器设置还是在可以检测操作系统并相应地为您的构建定义宏的构建脚本中设置),您将依赖于其他一些(C++ 中的非标准)库函数或程序来检测操作系统。但是,要使用这样的库函数或程序,您需要检查操作系统以确定该库函数或程序是否可用。到那时,论证就变成了无限递归(就像老儿歌“桶里有个洞”)。
标签: c++