Probablemente una pregunta ingenua: solía programar hace 20 años y no he codificado mucho desde entonces. Mi memoria de cómo las obras C preprocessor
ha atrofiado significativamente desde entonces ...Formato de matriz para #define (preprocesador C)
Estoy escribiendo un programa muy simple C
y yo estoy tratando de declarar un par de matrices globales estáticos, pero el tamaño de la arrays
sería dependiente (en una forma no trivial) en una variable MODE
. Algo así como el ejemplo simplificado a continuación.
Dos puntos rápidos: Sé que sólo podía dimensionar el arrays
acuerdo con el tamaño más grande que necesita cualquier MODE
, pero no quieren que debido a que (al contrario que en el ejemplo simplificado abajo) a veces un puñado de estas dimensiones son va a ser extremadamente grande, mientras que otros son muy pequeños.
Además, deseo utilizar matrices globales definidas estáticamente, en lugar de asignarlas dinámicamente en el tiempo de ejecución. Quiero que el compilador tenga los tamaños en tiempo de compilación.
//** Simplified example of what I'd like to do **//
#define SIZE_LIST_1[5] = {2, 7, 23, 33, 12, 76} // I don't think this is valid syntax
#define SIZE_LIST_2[5] = {11, 65, 222, 112, 444}
#define MODE 4
#define S1 SIZE_LIST_1[MODE]
#define S2 SIZE_LIST_2[MODE]
int a[S1], b[S2];
'int SIZE_LIST_1 [5] = {2,7 ... 76};' –
Las macros son sustituciones. – Jack
No veo a qué te refieres con un [S1]. ¿Qué estás tratando de hacer allí? –