Setzen Sie eine Variable bedingt, wenn sie NULL ist

Beim Betreten von asqlite3_stmtIch 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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage