Ich initialisiere ein Array auf zwei verschiedene Arten, abhängig von einem Makro:
# if feature_enabled
const int v[4] = {1, 2, 3, 4};
#else
const int v[5] = {0, 1, 2, 3, 4};
#endif
Das Problem ist, dass die Daten in der Zuweisung tatsächlich große Matrizen sind und es aus verschiedenen Gründen keine gute Lösung ist, die Daten nur mit einer geringfügigen Änderung zu kopieren (nur ein weiteres Element am Anfang des Arrays).
Ich habe mich gefragt, ob es eine Möglichkeit gibt, das Gleiche wie hier zu tun, ohne die letzten n-1 Elemente im Wesentlichen zu duplizieren.
Antworten:
Wenn Sie die Größe des Arrays nicht angeben, es aber automatisch ableiten lassen, können Sie die 0 vorne einfach bedingt hinzufügen:
quelle
Wenn Sie die Arraygröße beibehalten müssen, dann:
quelle