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

Từ khóa "extern" trong C

Biến extern (biến ngoài) còn gọi là biến toàn cục. Khai báo ngoài hàm, hiển thị toàn chương trình. Giá trị có thể thay đổi bởi các hàm. Từ khóa extern dùng để khai báo/định nghĩa biến ngoài.

Đặc điểm

  • Phạm vi: Toàn cục (không bị giới hạn bởi hàm).
  • Giá trị mặc định: 0.
  • Vòng đời: Cả chương trình.

Điểm quan trọng

  • Có thể khai báo nhiều lần (trong các file .c khác nhau), nhưng chỉ định nghĩa một lần (cấp phát bộ nhớ).
  • extern mở rộng khả năng thấy (visibility) của biến/hàm.
  • Hàm mặc định đã toàn cục, không cần extern cho hàm (chỉ thêm rối).
  • Biến extern chỉ khai báo, không định nghĩa (trừ khi có khởi tạo).
  • Khởi tạo biến extern coi là định nghĩa.

Ví dụ

#include <stdio.h>
extern int x = 32; // Định nghĩa (có khởi tạo)
int b = 8;         // Toàn cục ngầm định
int main() {
    auto int a = 28;
    extern int b;  // Khai báo tham chiếu b toàn cục
    printf("Auto a: %d\n", a);
    printf("Extern x, b: %d, %d\n", x, b);
    x = 15;        // Sửa đổi biến extern
    printf("Extern x sau khi sua: %d\n", x);
    return 0;
}

Kết quả

Auto a: 28
Extern x, b: 32, 8
Extern x sau khi sua: 15

Ứng dụng thực tế: Chia sẻ biến giữa nhiều file .c (khai báo extern trong header, định nghĩa trong một file .c).