有人可以解釋我這個語法嗎?它來自高科技C包括文件Hitech C語法
/* STATUS bits */
static volatile bit IRP @ (unsigned)&STATUS*8+7;
static volatile bit RP1 @ (unsigned)&STATUS*8+6;
static volatile bit RP0 @ (unsigned)&STATUS*8+5;
static volatile bit TO @ (unsigned)&STATUS*8+4;
static volatile bit PD @ (unsigned)&STATUS*8+3;
static volatile bit ZERO @ (unsigned)&STATUS*8+2;
static volatile bit DC @ (unsigned)&STATUS*8+1;
static volatile bit CARRY @ (unsigned)&STATUS*8+0;
我想設置在STATUS每個單一位的確切「地址」。 – LPs
非標準的'@'符號通常用於在特定地址分配變量。在這種情況下,它似乎被用來命名位域的各個位。 '(unsigned)&STATUS'將給出一個指向無符號整數的指針,並且一個整數是幾個字節寬。然後出於某種原因,他們將這個地址乘以8並添加一個偏移量。 總是最好避免像這樣的非標準垃圾頭:如果可能,請推出自己的寄存器定義,最好是使用'#define'和位運算符。 – Lundin
有一個關於「@」符號的答案。我沒有得到乘法。 – tcop