Một đồng nghiệp đang làm một số xét mã, và anh đang chứng kiến nhiều khai báo biến tĩnh tương tự như sau:Có lý do chính đáng để khởi tạo biến tĩnh trên mọi cuộc gọi đến hàm được xác định không?
void someFunc(){
static int foo;
static int bar;
static int baz;
foo = 0;
bar = 0;
baz = 0;
/*
rest of the function code goes here
*/
}
câu hỏi của chúng tôi là, Liệu các lập trình viên viết mã này chỉ đơn giản là không rõ ràng về khái niệm về một tĩnh biến, hoặc là có một số lý do thông minh để làm điều này có mục đích?
Nếu có bất kỳ sự khác biệt nào, môi trường là một vi điều khiển được nhúng và trình biên dịch là GCC.
Khi tuyên bố như tĩnh, nó tránh lưu trữ các biến trong ngăn xếp. Vì vậy, giảm thiểu kích thước ngăn xếp cũng có thể là một lý do .. – VoidPointer
Nếu chúng đã cố ý, ví dụ: để giảm mức sử dụng ngăn xếp, thì chúng nên giải thích rằng trong nhận xét. –