【发布时间】:2011-05-04 13:52:14
【问题描述】:
我正在尝试更新一些大约 2003 年的 I/O Kit 代码,但我遇到了一些奇怪的事情:只有在设置了 __LP64__ 预处理器宏的情况下,才会在某些地方将方法声明为纯虚拟。例如,来自IOBlockStorageDevice:
public
#ifdef __LP64__
virtual IOReturn getWriteCacheState(bool *enabled) = 0;
#else /* !__LP64__ */
virtual IOReturn getWriteCacheState(bool *enabled); /* 10.3.0 */
#endif /* !__LP64__ */
在上面的例子中,为什么在>=10.4而不是10.3强制执行getWriteCacheStatus?这只是“我们以前应该这样做过”的情况,还是我没有看到更深层次的东西(通常是这种情况)。
【问题讨论】:
标签: macos 64-bit iokit pure-virtual