Hôm nay, tôi gặp một tình huống mà tôi cần quyết định nếu toàn bộ cấu trúc bao gồm khoảng 40 phần tử bằng không - nghĩa là mỗi phần tử bằng 0.
Khi nghĩ làm thế nào để làm cho nó càng nhanh và hiệu quả càng tốt, tôi nghĩ về 3 cách khác nhau để làm như vậy:Cách ưa thích để so sánh cấu trúc với số không
- so sánh từng phần tử bằng không, kết quả là 40 nếu phát biểu.
- phân bổ một cấu trúc tương tự được allready zeroed và
memcmp
nó với cấu trúc. - gói cấu trúc trong một liên minh với một loại đủ lớn để trang trải tất cả.
ví dụ
typedef union {
struct {
uint8_t a;
uint8_t b;
}
uint16_t c;
} STRUCTURE_A;
và sau đó so sánh nó không.
Tôi muốn biết suy nghĩ của bạn về những giải pháp này, bạn sẽ tìm thấy giải pháp nào nhanh nhất và hiệu quả nhất.
Và nếu bạn có cách tiếp cận tốt hơn, hãy cho tôi biết ...
Cảm ơn bạn.
Có gì sai khi chỉ cần kiểm tra toàn bộ cấu trúc trong câu lệnh 'if', giống như bạn có thể cho cờ không? –
Đừng quên đệm! – NPE
Bạn đã thực hiện từng cách trong ba cách khác nhau của mình và so sánh hiệu suất của chúng chưa? Bạn đã tìm thấy gì? –