2013-07-20 42 views
6

Có cách nào để hướng dẫn gcc bỏ qua khởi tạo cho một số biến tĩnh, biến động không? Tôi có một số bộ đệm tròn (tuyên bố dễ bay hơi) mà thực sự không cần phải được zeroed lúc khởi động và trên MCU của tôi, đó là một sự lãng phí khoảng ~ 2500 băng giá.C, bỏ qua mảng tĩnh khởi tạo

Cảm ơn trước,

+0

biên soạn có điều kiện sử dụng '#ifdef ..... # endif' ?? –

+0

hmm ... Tôi đang nói về thời gian chạy ở đây, không phải thời gian thiết kế. – user1973900

+0

sau đó lựa chọn là nếu/else –

Trả lời

6

Nếu bạn sử dụng gcc, bạn có thể đặt các đối tượng mảng trong phần .noinit:

uint8_t arr[1024] __attribute__ ((section (".noinit"))); 
+0

Phần mở rộng này có mâu thuẫn với chuẩn C không? – SomeWittyUsername

+0

@icepack tất nhiên nó mâu thuẫn với tiêu chuẩn C. – ouah

+0

@icepack - có thể có - đó là lý do tại sao đó là tiện ích mở rộng. – user93353

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