Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

คลาสหน่วยเก็บข้อมูลภายนอกใน C++


ตัวระบุคลาสการจัดเก็บข้อมูลภายนอกช่วยให้คุณประกาศอ็อบเจ็กต์ที่ไฟล์ต้นทางหลายไฟล์สามารถใช้ได้ การประกาศภายนอกทำให้ตัวแปรที่อธิบายสามารถใช้งานได้โดยส่วนที่ต่อจากนี้ไปของไฟล์ต้นฉบับปัจจุบัน การประกาศนี้ไม่ได้แทนที่คำจำกัดความ การประกาศใช้เพื่ออธิบายตัวแปรที่กำหนดโดยภายนอก

การประกาศภายนอกสามารถปรากฏภายนอกฟังก์ชันหรือที่จุดเริ่มต้นของบล็อก หากการประกาศอธิบายฟังก์ชันหรือปรากฏนอกฟังก์ชันและอธิบายอ็อบเจ็กต์ที่มีการเชื่อมโยงภายนอก คีย์เวิร์ด extern จะเป็นทางเลือก

หากมีการประกาศตัวระบุอยู่แล้วที่ขอบเขตของไฟล์ การประกาศภายนอกของตัวระบุเดียวกันที่พบในบล็อกจะอ้างอิงถึงอ็อบเจ็กต์เดียวกันนั้น หากไม่มีการประกาศอื่นสำหรับตัวระบุที่ขอบเขตไฟล์ ตัวระบุนั้นมีการเชื่อมโยงภายนอก

C++ จำกัดการใช้ตัวระบุคลาสการจัดเก็บภายนอกสำหรับชื่อของอ็อบเจ็กต์หรือฟังก์ชัน การใช้ตัวระบุภายนอกที่มีการประกาศประเภทนั้นผิดกฎหมาย การประกาศภายนอกไม่สามารถปรากฏในขอบเขตของคลาสได้

คุณสามารถใช้คีย์เวิร์ดภายนอกดังต่อไปนี้เพื่อแชร์ตัวแปรในไฟล์ต่างๆ -

file3.h

extern int global_variable;  /* Declaration of the variable */

file1.c

#include "file3.h"  /* Declaration made available here */
#include "prog1.h"  /* Function declarations */
/* Variable defined here */
int global_variable = 37;    /* Definition checked against declaration */

int increment(void) {
   return global_variable++;
}

file2.c

#include "file3.h"
#include "prog1.h"
#include <stdio.h>

void use_it(void)
{
   printf("Global variable: %d\n", global_variable++);
}

คำถามต่อไปนี้ที่ stackoverflow รวบรวมสาระสำคัญของคีย์เวิร์ด extern อย่างสมบูรณ์:https://stackoverflow.com/questions/1433204/how-do-i-use-extern-to-share-variables-between-source-files พี>