簡體   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