Präprozessor-Makro: Zeichenkette beschneiden

Gast #3616952
Lesenswert?

Nein, der Präprozessor kann kein String split. Warum geht sowas nicht:
1
__attribute__((constructor)) void init_version_string() {
2
  static char version_[21];
3
  snprintf(version_, sizeof(version_), "%s", _VERSION_);
4
}
?
Gast #3617424
Lesenswert?

In C++11 gehts: http://ideone.com/qeD0qD

Der Compiler führt das Zuschneiden statisch zur Compile-Zeit durch. Die 
Variablen 'x', 'y' enthalten direkt den zugeschnittenen String (wie ein 
C-Array) (ohne dynamische Speicher-Verwaltung). Es wird nur der gekürzte 
String im Kompilat gespeichert (keine Speicherverschwendung), aber mit 
Null-Byte (könnte man auch weglassen).
Zum Testen werden die Strings ausgegeben.

Wenn du momentan C verwendest, kompiliere mit "g++ -std=c++11" statt 
"gcc" und der Code funktioniert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren