TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jeremylf en 14 de Abril de 2009, 20:20:28
-
Hola. Esto:
void Main(void)
{
char str[2] = {'A', '1'};
if (str == "A1")
{
output_high(PIN_B4);
}
while (true)
{
}
}
Esta bien? Ocea, se supone que deberia prender el led verdad? Pero nunca prende.
Tambien probe asi:
char str[] = "A1";
...Esto que quiere decir? No es lo mismo el c para uc's que para la pc o no es muy potente el compilador del ccs o es algun error ¿?¿?¿? Prosiaca he probado con el CCS 4.023 y 4.068.
Gracias, un saludo.
-
Olvide decir, se supone (CREO) que se debe de usar la libreria stlib.h o una de esas para el manejo de strings PERO porq el CCS me deja compilarlo ????? creo que esa seria la pregunta :lol:
Un saludo.
-
No, no es igual. La variable string existe en lenguajes como c++ o c# pero no en el c de ccs.
Además si deseas usar strings recuerda colocar el null char al final de todo string...
char string[3]={'a','1',NULL};
o lo que es igual
char string[3]="A1"; //CCS incluye automáticamente el null char en este caso
Si en el programa usas str así:
int8 variable;
char str[2] = {'A', '1'};
...
variable=str;
El contenido de variable será la dirección de memoria en donde está alojado el primer char, en este caso sería la dirección de memoria donde está la 'A'. Eso equivale a:
variable=&str[0];
Si deseas comparar strings tendrás que incluir la librería strings.h y usar funciones como strcmp().
Y te recuerdo, todo string (arreglo de chars en CCS) que vayas a manejar con cualquier función de strings.h deberá contener un null char al final, de lo contrario tendrás problemas de acceso de memoria. Si el máximo número de chars va a ser 2, entonces el array deberá tener 3 localidades.
Otra forma de hacer la comparación es haciéndolo char por char en un ciclo for. Esto ahorraría rom de programa al no incluir strings.h.
-
Vaya, gracias migsantiago. Si, alfinal creo que usare string.h o un con un ciclo for.
Gracias.
-
Ahorra rom, el for es la mejor opción :mrgreen:
-
ROM tengo de sobra, aunq como solo quiero comparar un string con otro, creo q bastaria con for :D
-
Lo mas facil en estos casos es usar las funciones de la libreria string.h. Hay una funcion q se llama strcmp que devuelve 0 si dos cadenas son iguales.
saludos!!!
-
yo prefiero ahorrar ROM y tomar RON :-)
-
:D :D :D
Es más barato el RON que la ROM en estos tiempos de crisis :P
-
El problema es que con mucho RON crees que estas ahorrando mas ROM .... ya al otro dia te daras cuenta
-
ya que el tema es serio :| :D
-
depende de cuanto RON puede ayudarte a optimizar la ROM , hay casos en que no :ni)
-
Pues con litro y medio de RON a mi se me flashea la ROM!!!
-
:D :D :D
Pues con litro y medio de RON a mi se me flashea la ROM!!!
-
¡Panda de borrachos!, ¡todo el día pensando en lo mismo! :D
-
:D :D :D
Llego el que sabe!!!!! del manejo de strings claro esta, que es de lo que se trata este hilo
:D :D :D
-
¿Strings?, ¿qué es eso? :lol:
-
Es la abreviacion, luego de litro y medio de ROM(N), de It's Drinks?
-
:-/ :-/ :-/
-
:D :D :D