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

Lớp lưu trữ extern trong C++

Chỉ định lớp lưu trữ extern cho phép bạn khai báo các đối tượng có thể được sử dụng bởi nhiều file nguồn. Một khai báo extern làm cho biến được mô tả có thể sử dụng được bởi phần tiếp theo của file nguồn hiện tại. Khai báo này không thay thế định nghĩa. Nó được dùng để mô tả biến được định nghĩa bên ngoài.

Đặc điểm chính

  • Khai báo extern có thể xuất hiện ngoài hàm hoặc ở đầu một khối lệnh.
  • Nếu khai báo mô tả một hàm hoặc xuất hiện ngoài hàm và mô tả đối tượng với liên kết bên ngoài (external linkage), từ khóa extern là tùy chọn.
  • Nếu khai báo cho một định danh đã tồn tại ở phạm vi file, bất kỳ khai báo extern nào của cùng định danh trong khối lệnh sẽ tham chiếu đến cùng đối tượng đó.
  • Nếu không có khai báo nào khác cho định danh ở phạm vi file, định danh đó có liên kết bên ngoài.
  • C++ giới hạn việc sử dụng extern chỉ cho tên đối tượng hoặc hàm. Sử dụng với khai báo kiểu là không hợp lệ. Khai báo extern không thể xuất hiện trong phạm vi class.

Ví dụ chia sẻ biến giữa các file

file3.h - Khai báo:

extern int global_variable;  /* Khai báo biến */

file1.cpp - Định nghĩa và sử dụng:

#include "file3.h"   /* Khai báo có sẵn ở đây */
#include "prog1.h"   /* Khai báo hàm */

/* Biến được định nghĩa ở đây */
int global_variable = 37;  /* Định nghĩa được kiểm tra với khai báo */

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

file2.cpp - Sử dụng biến chung:

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

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

Tài nguyên tham khảo: Câu hỏi trên Stack Overflow nắm vững bản chất của từ khóa extern: How do I use extern to share variables between source files?