Vì trình biên dịch của tôi cung cấp các thống kê khác nhau cho hai đoạn mã này, tôi tự hỏi điều gì làm cho chúng khác biệt, nếu có?Có sự khác biệt nào giữa hai biểu thức này không?
Đầu tiên một:
typedef const struct process_data
{
uint8_t *name;
void (*p_func)(void);
} process_data_t;
process_data_t processes = {15,16};
Và là một trong những thứ hai:
typedef struct process_data
{
uint8_t *name;
void (*p_func)(void);
} process_data_t;
const process_data_t processes = {15,16};
Lưu ý rằng const
vòng loại đã chuyển từ typedefing với định nghĩa của cấu trúc. Đối với tôi không có sự khác biệt giữa hai đoạn trích, nhưng số liệu thống kê trình biên dịch/linker cho thấy rằng bộ nhớ flash ít hơn (nền tảng là vi điều khiển với các tài nguyên hạn chế) được sử dụng khi đoạn mã thứ hai được sử dụng.
Xem xét sự khác biệt trong tệp 'map'. Và báo cáo lại :) –
vui lòng cung cấp một ví dụ hoàn chỉnh hơn, chỉ đủ để hiển thị vấn đề. –