繁体   English   中英

我试图用宏在操作系统中进行中断。 这种构造在C中意味着什么?

[英]Im try to make interrupts in my OS with macros. What does this construction mean in C?

#define IRQ_HANDLER(name) void name(); \
    asm(#name ": pusha \n call _" #name " \n movb $0x20, %al \n outb %al, $0x20 \n outb %al, $0xA0 \n popa \n iret"); \
    void _##name()

_##name()是什么意思? 我知道#name意思是"name" ,但是##name什么?

#是字符串化预处理程序运算符

##是令牌粘贴或令牌串联预处理器运算符。 扩展宏后, ##两侧将合并并组成一个标识符。 这样,在您的示例中, _将连接到宏参数中给出的名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM