Estoy inicializando una matriz de dos maneras diferentes dependiendo de una macro:
# if feature_enabled
const int v[4] = {1, 2, 3, 4};
#else
const int v[5] = {0, 1, 2, 3, 4};
#endif
El problema es que los datos en la asignación son en realidad matrices grandes, y por varias razones no es una buena solución simplemente copiar los datos con una modificación menor (solo un elemento más al comienzo de la matriz).
Me preguntaba si hay una manera de hacer lo mismo que hice aquí, sin duplicar esencialmente los últimos elementos n-1.
Respuestas:
Si no especifica el tamaño en la matriz pero deja que se deduzca automáticamente, simplemente puede agregar el 0 en el frente condicionalmente:
fuente
Si necesita mantener el tamaño de la matriz, entonces:
fuente