История изменений
Исправление vbr, (текущая версия) :
Первый код понятный и читабельный. Второй код непонятный ещё на этапе пролога и будет 100% нечитаемый на этапе условий. Честно говоря не вижу в этом никакого смысла.
Единственное, что я бы сделал, это вынес бы выражения phonebookEntry->index, phonebookEntry->telNo, phonebookEntry->name в переменные index, telNo, name перед этими if-ами:
int8_t index = phonebookEntry->index;
const char *telNo = phonebookEntry->telNo;
const char *name = phonebookEntry->name;
if (index < 0 && telNo != NULL && name == NULL) {
// только телефон
} else if (index < 0 && telNo != NULL && name != NULL) {
// телефон и имя
} else if (index >= 0 && telNo == NULL && name == NULL) {
// только индекс
} else if (index >= 0 && telNo != NULL && name == NULL) {
// индекс и телефон
} else if (index >= 0 && telNo != NULL && name != NULL) {
// индекс, телефон и имя
} else {
//недопустимое сочетание
}
Исходная версия vbr, :
Первый код понятный и читабельный. Второй код непонятный ещё на этапе пролога и будет 100% нечитаемый на этапе условий. Честно говоря не вижу в этом никакого смысла.
Единственное, что я бы сделал, это вынес бы выражения phonebookEntry->index, phonebookEntry->telNo, phonebookEntry->name в переменные index, telNo, name перед этими if-ами.