Chúng tôi có tuyên bố này trong LCD.c:Làm cách nào để khai báo mảng 2d bên ngoài trong tiêu đề?
unsigned char LCD[8][64] = {((unsigned char) 0)};
Và trong LCD.h chúng tôi muốn có một cái gì đó như:
extern unsigned char LCD[][];
Chúng tôi nhận được lỗi này:
Error[Pe098]: an array may not have elements of this type
Có thể hữu ích khi nhấn mạnh '#include" LCD.h "' thành 'LCD.c' (vì vậy macro' MINOR' chỉ được xác định một lần trong tệp tiêu đề) để loại trừ khả năng loại xung đột cho 'LCD' giữa khai báo và định nghĩa thực tế (không được phát hiện là lỗi biên dịch khi chúng nằm trong các tệp khác nhau và lỗi trình liên kết). –
Tôi nghĩ rằng bất cứ khi nào một dự án chứa cả XYZ.h và XYZ.c, nó là khá nhiều quy tắc chung và đặt cược an toàn XYZ.c sẽ bao gồm XYZ.h, không? –
Vâng, bạn có quyền, nhưng càng tốt để xác nhận nó (ví dụ: đối với một số lập trình viên mới làm quen, đang đọc SO). –