Chúng ta có thể sử dụng tĩnh và biến động cùng nhau trong C không?
Chúng ta có thể sử dụng tĩnh và biến động cùng nhau trong C không?

Video: Chúng ta có thể sử dụng tĩnh và biến động cùng nhau trong C không?

Video: Chúng ta có thể sử dụng tĩnh và biến động cùng nhau trong C không?
Video: Chữa Bệnh "Ngày nào cũng mệt mỏi, cạn năng lượng, không động lực" 2024, Tháng mười hai
Anonim

Tĩnh các biến giữ nguyên giá trị của chúng giữa các lần gọi hàm. Bay hơi các biến (không phải là tổng hợp của tĩnh ) là đã sử dụng khi một biến là đã sử dụng cả bên trong ISR (quy trình dịch vụ gián đoạn) và bên ngoài nó. Bay hơi yêu cầu trình biên dịch luôn tải sẵn có từ RAM thay vì lưu vào bộ nhớ đệm trong CPUregister.

Tương tự như vậy, người ta có thể hỏi, chúng ta có thể sử dụng tĩnh và biến động cùng nhau không?

Thậm chí nếu bạn truy cập một tĩnh giá trị thông qua nhiều chủ đề, mỗi chủ đề có thể có bộ đệm ẩn cục bộ của nó! Để tránh điều này bạn có thể khai báo biến là tĩnh dễ bay hơi và điều này sẽ buộc luồng đọc mỗi lần giá trị toàn cục. Tuy vậy, bay hơi không thể thay thế cho đồng bộ hóa thích hợp!

Tương tự như vậy, tại sao chúng ta sử dụng dễ bay hơi trong C? C là dễ bay hơi từ khóa là một định tính được áp dụng cho một biến khi nó được khai báo. Nó cho trình biên dịch biết rằng giá trị của biến có thể thay đổi bất kỳ lúc nào - mà không có bất kỳ hành động nào được thực hiện bởi mã mà trình biên dịch tìm thấy gần đó. Các hệ quả của việc này là khá nghiêm trọng.

Xem xét điều này, tính dễ bay hơi tĩnh trong C có nghĩa là gì?

tĩnh đề cập đến phạm vi của biến. Nếu biến là toàn cục, điều đó có nghĩa là phạm vi bị giới hạn đối với tệp nguồn mà nó được khai báo. Nếu biến là cục bộ của một hàm, thì điều đó có nghĩa là bộ nhớ được sử dụng để giữ biến này là trong bộ nhớ được cấp phát tĩnh của ứng dụng.

Chúng ta có thể sử dụng const với dễ bay hơi trong C không?

Đúng. Một biến số có thể được khai báo là cả hai bay hơi và hằng số trong NS . hăng sô modifier không cho phép thay đổi giá trị của biến bằng chương trình nội dung. Nhưng, nó không có nghĩa là giá trị của hăng sô không nên thay đổi biến bằng mã bên ngoài.

Đề xuất: