Avatar ·

كيفية استخدام extern لمشاركة المتغيرات بين ملفات C++؟

مرحبًا! بدأت تعلم لغة C++ وأحاول تقسيم برنامجي إلى عدة ملفات. لدي ثلاثة ملفات: main.cpp و functions.cpp و functions.h. في functions.h أعلنت عن متغير عام int global_counter = 0; وعدة دوال. في functions.cpp عرّفت هذه الدوال التي تغير global_counter. في main.cpp أضمّن functions.h وأحاول استخدام global_counter، لكن المترجم يعطي خطأ "multiple definition of `global_counter`". سمعت شيئًا عن الكلمة المفتاحية extern لكنني لا أفهم تمامًا كيفية استخدامها بشكل صحيح. هل يمكنك التوضيح بمثال بسيط؟ هذا هو الكود الحالي الخاص بي: // functions.h #ifndef FUNCTIONS_H #define FUNCTIONS_H int global_counter = 0; void increment(); void print_counter(); #endif // functions.cpp #include "functions.h" #include void increment() { global_counter++; } void print_counter() { std::cout << global_counter; } // main.cpp #include "functions.h" int main() { increment(); print_counter(); }