Autor Tema: Puntero a Constante  (Leído 2502 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mirazulado

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 142
Puntero a Constante
« 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..

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Puntero a Constante
« Respuesta #1 en: 23 de Diciembre de 2005, 06:03:00 »
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 vectorGiño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado mirazulado

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 142
RE: Puntero a Constante
« Respuesta #2 en: 23 de Diciembre de 2005, 07:16:00 »
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..


Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
RE: Puntero a Constante
« Respuesta #3 en: 23 de Diciembre de 2005, 08:32:00 »
css no admitia punteros a constantes de ninguna manera... al menos yo no pude hacerlo.

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: Puntero a Constante
« Respuesta #4 en: 23 de Diciembre de 2005, 10:44:00 »
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!