私は現在、自分のカーネルをボトムアップで作成している最中ですが、リニアメモリマネージャーでこの小さな問題に遭遇しました。これは理解できないようです。
次のコードがあります。
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;