كيفية استخدام extern لمشاركة المتغيرات بين الملفات في C++؟
مرحبًا! أنا مطور C++ مبتدئ وواجهت مشكلة: لدي مشروع يتكون من عدة ملفات، وأحتاج إلى استخدام متغير مشترك في ملفات .cpp مختلفة. حاولت تعريف المتغير في ملف واحد واستخدامه في ملف آخر، لكن المترجم يعطي خطأ "undefined reference" أو "multiple definition".
إليك مثال مبسط: لدي ملف `main.cpp`:
```cpp
#include
#include "functions.h"
int main() {
global_var = 5;
print_var();
return 0;
}
```
ملف `functions.h`:
```cpp
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
int global_var; // تعريف المتغير
void print_var();
#endif
```
وملف `functions.cpp`:
```cpp
#include
#include "functions.h"
void print_var() {
std::cout << "global_var = " << global_var << std::endl;
}
```
عند محاولة تجميع هذا (مثلًا عبر `g++ main.cpp functions.cpp -o program`) أحصل على خطأ "multiple definition of `global_var`". سمعت أن