Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Khi nào nên dùng extern trong C/C++

Biến ngoài (external variables) còn gọi là biến toàn cục (global variables). Chúng được định nghĩa bên ngoài hàm và có sẵn toàn cục trong suốt quá trình thực thi. Từ khóa extern dùng để khai báo và định nghĩa các biến ngoài.

Từ khóa extern "C" dùng trong C++ để khai báo hàm được triển khai và biên dịch bằng C, cho phép sử dụng thư viện C trong C++.

Cú pháp

extern datatype variable_name; // Khai báo biến extern
extern datatype func_name();   // Khai báo hàm extern

Trong đó:

  • datatype – Kiểu dữ liệu (int, char, float...)
  • variable_name – Tên biến
  • func_name – Tên hàm

Ví dụ

#include <stdio.h>

extern int x = 32; // Định nghĩa và khởi tạo
int b = 8;         // Biến toàn cục ngầm extern

int main() {
    extern int b;  // Khai báo tham chiếu extern
    printf("Gia tri bien extern x va b: %d,%d\n", x, b);
    x = 15;
    printf("Gia tri bien extern x sau khi thay doi: %d\n", x);
    return 0;
}

Kết quả

Gia tri bien extern x va b: 32,8
Gia tri bien extern x sau khi thay doi: 15

Giải thích: Hai biến x và b được khai báo toàn cục. Trong main(), extern int b; chỉ là khai báo tham chiếu (không định nghĩa lại). Giá trị được in ra và x được sửa đổi thành 15.

Khi nào dùng extern?

  • Chia sẻ biến toàn cục giữa nhiều file .c/.cpp (khai báo extern trong header, định nghĩa trong một file nguồn).
  • Gọi hàm C từ C++ qua extern "C".
  • Khai báo trước (forward declaration) cho biến/hàm định nghĩa sau.