我目前正在编写自己的内核自下而上,我在线性内存管理器中遇到了这个小问题,我似乎无法理解。
我有以下代码;
void* end_page_address = /*(void*)*/ 0x3FF000;
但是,当禁用 void 指针强制转换时,g++ 会出现以下错误;
src/paging/LinearMemoryManager.cpp: In constructor 'LinearMemoryManager::LinearMemoryManager(PhysicalMemoryManager*)':
src/paging/LinearMemoryManager.cpp:87:42: error: invalid conversion from 'int' to 'void*' [-fpermissive]
怎么会?- 因为它显然通常不需要,因为它上面的行在没有演员表的情况下编译得很好:
void* start_page_address = 0x00000000;