Setzen Sie eine Variable bedingt, wenn sie NULL ist
Beim Betreten von asqlite3_stmt
Ich möchte gegen einen Rückgabewert vonNULL
anstatt es zu speichern und mit dem gespeicherten Wert zu vergleichen.
Folgendes mache ich jetzt:
char *email = (char *)sqlite3_column_text(statement, 10);
if (email == NULL) email = "";
Und hier ist, was ich würdemögen zu tun, abzüglich des Doppelrufs zucolumn
:
char *email = ((char *)sqlite3_column_text(statement, 10)) ? (char *)sqlite3_column_text(statement, 10) : "";
Gibt es eine Möglichkeit, den zweiten Ausdruck präziser auszudrücken? Ich muss eine Menge davon wiederholt machen, deshalb suche ich nach Kürze.
Ich weiß, dass dies eher ein Problem des Kontrollflusses als ein Problem mit der SQLite-API selbst ist, aber Sie haben es dort. Mir fällt kein guter Weg dazu ein.