Chỉ tò mò, điều gì thực sự xảy ra nếu tôi xác định một mảng có độ dài bằng không int array[0];
trong mã? GCC hoàn toàn không phàn nàn.
Chương trình mẫu
#include <stdio.h>
int main() {
int arr[0];
return 0;
}
Làm rõ
Tôi thực sự đang cố gắng tìm hiểu xem các mảng có độ dài bằng không khởi tạo theo cách này, thay vì được chỉ ra giống như độ dài thay đổi trong các nhận xét của Darhiner, có được tối ưu hóa hay không.
Điều này là do tôi phải phát hành một số mã ra ngoài tự nhiên, vì vậy tôi đang cố gắng tìm hiểu xem tôi có phải xử lý các trường hợp SIZE
được xác định là 0
, xảy ra trong một số mã với định nghĩa tĩnh khôngint array[SIZE];
Tôi thực sự ngạc nhiên khi GCC không phàn nàn, dẫn đến câu hỏi của tôi. Từ những câu trả lời tôi nhận được, tôi tin rằng việc thiếu cảnh báo phần lớn là do hỗ trợ mã cũ chưa được cập nhật với cú pháp [] mới.
Bởi vì tôi chủ yếu tự hỏi về lỗi, tôi gắn thẻ câu trả lời của Lundin là chính xác (lần đầu tiên của Nawaz, nhưng nó chưa hoàn chỉnh) - những người khác đã chỉ ra cách sử dụng thực tế của nó cho các cấu trúc có đuôi, trong khi có liên quan, không phải là ' t chính xác những gì tôi đang tìm kiếm.
[]
Python hay thậm chí là ""
trong C là gì? Đôi khi, bạn có một hàm hoặc một macro yêu cầu một mảng, nhưng bạn không có bất kỳ dữ liệu nào để đưa vào nó.