2012-06-07 43 views

Trả lời

7

Không!
Biến toàn cầu và tĩnh được khởi tạo hoàn toàn nếu mã của bạn không thực hiện rõ ràng như được bắt buộc theo tiêu chuẩn C.
Trong ngắn hạn, các biến toàn cầu và tĩnh không bao giờ được bỏ khởi tạo.

+0

Có theo mặc định. Tôi muốn chúng được khởi tạo một cách rõ ràng. Bất kỳ máy phân tích tĩnh nào cũng phải được sử dụng tốt. – Kamath

+0

@AUZKamath: Không. Vì tiêu chuẩn đã yêu cầu các vars toàn cầu là gcc được khởi tạo mặc định không cung cấp cảnh báo hoặc chẩn đoán cho các vars toàn cầu chưa được khởi tạo. –

3

Không, vì gcc tự động khởi tạo tất cả các biến toàn cầu và tĩnh thành "0".

5

6.9.2 định nghĩa đối tượng bên ngoài

Semantics

Nếu việc kê khai của một định danh cho một đối tượng có phạm vi tập tin và khởi tạo, việc kê khai là một bên ngoài định nghĩa cho số nhận dạng.

Một tuyên bố của một định danh cho một đối tượng mà có phạm vi nộp mà không có một khởi tạo, và mà không có một specifier lưu trữ-lớp hoặc với sự xác định lưu trữ lớp tĩnh, tạo thành một định nghĩa dự kiến ​​ . Nếu đơn vị dịch có chứa một hoặc nhiều định nghĩa dự kiến ​​cho số nhận dạng và đơn vị dịch không chứa định nghĩa bên ngoài cho số nhận dạng đó, thì hành vi chính xác như đơn vị dịch có chứa khai báo phạm vi tệp của số đó loại hỗn hợp ở cuối đơn vị dịch, với bộ khởi tạo bằng 0.

Đảm bảo rằng các đối tượng trên phạm vi (toàn cục) luôn được khởi tạo.

Các vấn đề liên quan