TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: mirazulado en 22 de Diciembre de 2005, 09:52:00
-
Tengo una serie de mensajes que quiero mostrar por un LCD, estos estan guardados en forma de constante para ahorar RAM y flash, ahora para ahorrar mas ROM quiero utilizar una sola funcion que acepte longitud y constante a imprimir pero al intentar pasar una cadena constante como puntero el compilador me da error, alguien sabe en que me puedo equivocar o es el C que no soporta este tipo de punteros ?
const char mis[9]={"Custom :"};
const char add[3]={"dfg"}; //declaro contantes <-asi no funciona !!
// char add[3]={"dfg"}; <-esto funciona.!!!
main(){
printmsn(9, &mis[0]);
printmsn(3, &add[0]); //envio las constantes como punteros
// no puedo utilizar una matriz porque las
// longitud de las palabras varian mucho
}
void printmsn(int total, char* caracter){ // imprimo
int a;
for(a=0;a<total;a++)
lcd(*caracter++);
}
Saludos a todos Mariano..
-
Buenas!!!!lo que puedes pasar es un puntero que apunte a la primera posicion del vector, pero para deberas definirlo en la definicion de variables, es decir tu vector declaralo como un puntero, o simplemente declara un puntero e inicializalo a la primera posicion de tu vector
-
Si, eso ya lo probe y el error es el mismo, cuando apunto a una "conts char" me tira error en la asignacion, en cambio cuando apunto a "char" solo, no hay problema..
Apuntastes alguna vez a un "const char" ?
const char mis[9]={"Custom :"};
char* puntero= &mis[0]; // esto da error "Expecting an Identifier"
char mis[9]={"Custom :"};
char* puntero= &mis[0]; // esto compila y funciona perfecto pero consume RAM.
Saludos Mariano..
-
css no admitia punteros a constantes de ninguna manera... al menos yo no pude hacerlo.
-
La versión 3 de CCS, como dice elmasvital, no admite punteros a constantes (el compilador Hi-Tech actualmente si lo permite). Por lo que he leído en su página, esa nueva característica la incorporarán en la versión 4 que debe salir a principios de este año que entra.
Saludos!