La matriz estática c ++ declarada en el archivo h muestra la advertencia 'definido pero no utilizado'

Tengo curiosidad por lo siguiente. Tengo una matriz C simple declarada en un archivo de encabezado como este:

static int userCardsIndexes[INITIAL_CARDS_NUMBER] = {0, 1, 8, 9, 16, 17};

me da un montón de las advertencias:

: 'userCardsIndexes' defined but not used

a pesar de que incluyo este archivo en mis archivos cpp y uso esta variable. Lo segundo que no entiendo es cuando agregoconst especificador como este:

static const int userCardsIndexes[INITIAL_CARDS_NUMBER] = {0, 1, 8, 9, 16, 17};

¡Las advertencias desaparecen! ¿Puede alguien explicarme por qué recibo estas advertencias y por qué?const los elimina?

Respuestas a la pregunta(2)

Su respuesta a la pregunta