9
ผลกระทบของคำสำคัญภายนอกในฟังก์ชั่น C
ใน C ฉันไม่ได้สังเกตเห็นผลกระทบใด ๆ ของexternคำหลักที่ใช้ก่อนการประกาศฟังก์ชัน ตอนแรกฉันคิดว่าเมื่อกำหนดextern int f();ไฟล์เดียวบังคับให้คุณใช้มันนอกขอบเขตของไฟล์ อย่างไรก็ตามฉันพบว่าทั้งสอง: extern int f(); int f() {return 0;} และ extern int f() {return 0;} รวบรวมได้ดีไม่มีคำเตือนจาก gcc ผมใช้gcc -Wall -ansi; มันจะไม่ยอมรับ//ความคิดเห็นด้วยซ้ำ มีผลกระทบใด ๆ สำหรับการใช้extern ก่อนหน้านิยามฟังก์ชันหรือไม่? หรือเป็นเพียงแค่คีย์เวิร์ดเสริมที่ไม่มีผลข้างเคียงสำหรับฟังก์ชั่น ในกรณีหลังนี้ฉันไม่เข้าใจว่าทำไมนักออกแบบมาตรฐานถึงเลือกที่จะทิ้งไวยากรณ์ด้วยคำหลักที่ไม่จำเป็น แก้ไข:ชี้แจงฉันรู้ว่ามีการใช้งานสำหรับexternตัวแปร แต่ฉันก็แค่ถามเกี่ยวกับexternในฟังก์ชั่น