Zeichenketten und Makros
-
Hi,
ich hab hier ein Problem und wollt mal fragen, ob jemand von euch vielleicht helfen kann:
#define SELECT_ALL( X ) "SELECT * from " # X int func( char *table ) { char query[] = SELECT_ALL( table ); printf( "%s", query ); } int main(...) { char table[] = "myTable"; func( table ); }
Statt wie gewollt "SELECT * from myTable" kommt "SELECT * from table".
Was ich mittlerweile herausgefunden habe ist, dass das # das nicht so macht wie ich es will. Kennt jemand eine Alternative? strcat(...) wuerde zwar gehen, aber fuer komplexere Abfragen muesste ich dann jedes Schluesselwort per #define ablegen und das will ich eigentlich nicht.Bin fuer jeden Tip dankbar.
Philipp
-
char query[SIZE]; snprintf(query, sizeof(query), "select * from %s", table);
-
DrGreenthumb schrieb:
char query[SIZE]; snprintf(query, sizeof(query), "select * from %s", table);
Interessante Idee, mal schauen ob mich das weiterbringt, danke!