Estou inicializando uma matriz de duas maneiras diferentes, dependendo de uma macro:
# if feature_enabled
const int v[4] = {1, 2, 3, 4};
#else
const int v[5] = {0, 1, 2, 3, 4};
#endif
O problema é que os dados na atribuição são na verdade matrizes grandes e, por várias razões, não é uma boa solução apenas copiar os dados com uma pequena modificação (apenas mais um elemento no início da matriz).
Fiquei me perguntando se existe uma maneira de fazer a mesma coisa que fiz aqui, sem duplicar essencialmente os últimos elementos n-1.
6
Você sabia que o tamanho da matriz não corresponde ao número de elementos na lista de inicializadores?
—
Mc #
@ mch corrigiu agora, era apenas algo que eu digitei para a pergunta.
—
CE
@CE "e por várias razões, não é uma boa solução apenas copiar os dados com uma pequena modificação" - Você poderia nos dar uma referência para isso? Qual é a sua preocupação?
—
RobertS suporta Monica Cellio 6/12/19
@ RobertS-ReinstateMonica Por que, em geral, a duplicação de código é ruim? Esse é um tópico bastante amplo. Felizmente, recebi minha resposta de qualquer maneira.
—
CE
@CE Você não precisa fazer uma explicação detalhada, seria bom se você pudesse dar uma referência pelo menos ao que você está apontando e qual é a base dessa pergunta. Portanto, pessoas que não são confirmadas com essas coisas podem entender o objetivo dessa pergunta.
—
RobertS suporta Monica Cellio 6/12/19