Tengo muchos sensores de 3 ejes diferentes para los que estoy escribiendo un código de prueba. En los archivos de C para cada uno de ellos, tengo la misma cadena de carbón definido:¿Cómo se define una matriz de cadenas de caracteres en el archivo de encabezado?
char axis[3][8] = {"X", "Y", "Z"}
que utilizo cuando "para" Resultados de bucle I para imprimir el eje que está fallando así:
DEVICETEST_LOG("%s Failed %s axis for Min range\n",device_name[DUT], axis[i]);
Estaba pensando en ahorrar algo de espacio. Podría definir una matriz de cadenas de caracteres en un archivo de cabecera para usar en cualquier lugar.
He intentado varias cosas, pero parece que no puedo obtener una serie de cadenas definidas en mi archivo de encabezado que pueda repetir para pasar una compilación.
ah que tiene sentido pero parece bassackwards ... Así que el archivo de encabezado que incluyo en todas partes señala todos los otros archivos C a la definición local "myfile.c". – user1054210
Entonces, aunque he incluido el archivo de encabezado en los otros archivos c, recibo un error de compilación "refrence indefinido". Entonces en myheader.h tengo >> extern char * AXIS [3] [8]; y en myfile.c Tengo >> char * AXIS [3] [8] = {{"X"}, {"Y"}, {"Z"}}; y estoy incluyendo el myheader.h en otherfile.c. También intenté algunos otros trucos pero no están sincronizando. – user1054210
Algo más está mal entonces porque esto funciona ... ¿qué sucede si saca la macro de la ecuación y simplemente intenta acceder a la matriz en otro módulo de código que incluya el archivo de encabezado? En segundo lugar, debería ser 'const char * AXIS [3] = {" X "," Y "," Z "};' ya que estos son literales de cuerdas ... ¿de dónde sacas el '8'? – Jason