当编写在Windows和UNIX上运行的代码时,开发者往往发现有些东西是不可以按照与平台无关的方式来处理的。一个例子就是目录结构:UNIX中的目录结构和Windows有很大的不同。文件名的方式也有很大的区别。
为了克服上述问题,你可以使用unix_or_win32_name宏。
下面就是两个例子:
上面的例子都是可以自说明的,不用多做解释。你可以用unix_or_win32_name宏来实现其它目的。例如,在UNIX平台上,你用到snprintff函数而在Windows下是_snprintf函数。这两个函数实现的是同一个任务,但是用法不尽相同。这个缺陷是可以克服的,如下面的例子所示:
这里的代码用到了unix_or_win32_name宏。当编译代码时,应该可以自动识别平台类型。如果不行的话,你需要确保定义了FORCE_UNIX或者FORCE_WIN32指示。