为“gdt_flush”指定的存储类别
我正在编写一个需要与一些外部汇编器函数交互的操作系统。我将声明放在标题中:
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”指定存储类
我以前从未见过此错误,关于如何解决此问题有什么想法吗?
I am writing a operating system that needs to interface with some external assembler functions. I put the declaration in the header:
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
{
//...
When the code is ran, it produces
DescriptorTables.h:10:31: error: storage class specified for 'gdt_flush'
I have never seen this error before, Any ideas on how to fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你不能在类中这样说
extern
。extern
是一个存储类,它解释了您所看到的消息。You can't say
extern
like that within a class.extern
is a storage class, which explains the message you're seeing.