在pic16f1824.h裡面的結構型別變數,為什麼都宣告為"extern"?

作者 firststop0 於 2017年09月13日 16:42:01
各位好,據我所知,使用extern的時機是在參考別的source file裡面已經宣告的變數

例如: A file宣告 int flag;(global variable),在B file中想要參考 flag的話,就必須在B file裡也宣告extern int flag;

拿一個在16f1824.h裡的struct來討論:

typedef union {
struct {
unsigned SEN :1;
unsigned RSEN :1;
unsigned PEN :1;
unsigned RCEN :1;
unsigned ACKEN :1;
unsigned ACKDT :1;
unsigned ACKSTAT :1;
unsigned GCEN :1;
};
} SSP1CON2bits_t;
extern volatile SSP1CON2bits_t SSP1CON2bits @ 0x216;

最後一行,已經"宣告"了 SSP1CON2bits,為什麼還要+上extern呢?
這樣是不是代表,在其他file裡面已經有"宣告" SSP1CON2bits了?
如果是的話,是在哪個檔案呢?

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=1&topic_id=21623&post_id=76747