4
我正在嘗試更新一些大約-2003年的I/O Kit代碼,並且我遇到了一些奇怪的事情:只有在設置了__LP64__
預處理器宏的情況下,纔有一些地方將方法聲明爲純虛擬。例如,來自IOBlockStorageDevice:OS X:爲什麼__LP64__會導致純虛函數?
public
#ifdef __LP64__
virtual IOReturn getWriteCacheState(bool *enabled) = 0;
#else /* !__LP64__ */
virtual IOReturn getWriteCacheState(bool *enabled); /* 10.3.0 */
#endif /* !__LP64__ */
在上述例子中,爲什麼迫使getWriteCacheStatus的在10.3> = 10.4Hz但不執行?這僅僅是「我們之前應該做到這一點」的情況,還是我沒有看到更深的東西(通常是這種情況)。