C++ 为';gdt#U齐平';
我正在编写一个需要与一些外部汇编函数接口的操作系统。我将声明放在标题中:C++ 为';gdt#U齐平';,c++,assembly,osdev,C++,Assembly,Osdev,我正在编写一个需要与一些外部汇编函数接口的操作系统。我将声明放在标题中: namespace Kernel { class DescriptorTables { public: void init(); void gdt_set_gate(s32int,u32int,u32int,u8int,u8int); private: extern void gdt_flush(u32int);
namespace Kernel
{
class DescriptorTables
{
public:
void init();
void gdt_set_gate(s32int,u32int,u32int,u8int,u8int);
private:
extern void gdt_flush(u32int);
struct gdt_entry_struct
{
//...
当代码运行时,它会生成
DescriptorTables.h:10:31:错误:为“gdt_flush”指定了存储类
我以前从未见过这个错误,有没有关于如何修复这个错误的想法
extern void gdt_flush(u32int);
在类中不能这样说
extern
extern
是一个存储类,它解释了您看到的消息。我不完全确定您希望gdt_flush()
实现什么,但我最好的猜测是您希望能够重新实现其功能;为此,您需要virtual
。