Trong C++
Tôi biết các đối tượng static
và global
được xây dựng trước chức năng main
. Nhưng như bạn đã biết, trong C
, không có loại nào như vậy initialization procedure
trước main
.Khi nào các biến tĩnh và toàn cầu được khởi tạo?
Ví dụ, trong mã của tôi:
int global_int1 = 5;
int global_int2;
static int static_int1 = 4;
static int static_int2;
- Khi là bốn biến khởi?
- Giá trị khởi tạo như
5
và4
được lưu trữ trong khi biên dịch ở đâu? Làm thế nào để quản lý chúng khi khởi tạo?
EDIT:
Làm rõ câu hỏi thứ 2.
- Trong mã của tôi, tôi sử dụng
5
để khởiglobal_int1
, vậy làm thế nào trình biên dịch có thể gán5
đểglobal_int
? Ví dụ: có thể trình biên dịch trước tiên lưu trữ giá trị5
ở đâu đó (ví dụ: bảng) và nhận giá trị này khi bắt đầu khởi chạy. - Để "Làm thế nào để quản lý chúng khi khởi tạo?", Nó thực sự mơ hồ và bản thân tôi vẫn chưa giải thích. Đôi khi, nó không phải là dễ dàng để giải thích một câu hỏi. Hãy nhìn nó vì tôi chưa nắm được câu hỏi đầy đủ.
Tất cả bốn biến của bạn đều có lớp lưu trữ tĩnh. –
@KerrekSB 'Lớp lưu trữ tĩnh' liên quan đến câu hỏi của tôi như thế nào? – Zachary
Lớp lưu trữ xác định hành vi khởi tạo. –