ตามความเข้าใจของผมนะครับ extern เป็นการบอกให้รู้ว่าตัวแปรนี้ได้ประกาศไว้ในไฟล์หนึ่งแล้ว แล้วเราต้องการใช้ตัวแปรเดียวกันนี้ในอีกไฟล์หนึ่งร่วมกัน อย่างเช่นใน main.c ได้ประกาศและใช้ตัวแปร __IO uint16_t ADCConvertedValue[]; แล้วเราต้องการใช้ตัวแปรเดียวกันนี้เชื่อมโยงถึงกันในไฟล์ stm32f10x_it.c เราก็ต้องประกาศตัวแปรนี้ที่ไฟล์ stm32f10x_it.c เป็น extern __IO uint16_t ADCConvertedValue[]; อย่างนี้เป็นต้นครับ