Autor Tema: Dudas sobre la programación en C  (Leído 3597 veces)

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

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Dudas sobre la programación en C
« Respuesta #15 en: 16 de Agosto de 2015, 06:08:33 »
Luego está bien conocer que hay lenguajes con los que aprendes a programar y otros con los que se puede desaprender.

El C no es un buen lenguaje para aprender a programar. Para eso es francamente malo.
En C se puede hacer de todo... y lo más fácil es programar mal. Es mejor aprender con lenguajes que te guían para programar bien y luego pasarte al C, con el que puedes hacer de todo sabiendo los peligros que eso tiene.

Por ejemplo un puntero de c "void *p;" es una bomba en potencia. Tienes acceso a toda la memoria sin restricciones.

Saludos.

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re: Dudas sobre la programación en C
« Respuesta #16 en: 16 de Agosto de 2015, 08:18:27 »
 :shock: vaya,la verdad que me queda camino que jode  :D :D :D :D.
¿que lenguaje es el recomendado para programar bien?
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re: Dudas sobre la programación en C
« Respuesta #17 en: 16 de Agosto de 2015, 09:02:17 »
Citar
Insertar Cita
 Shocked vaya,la verdad que me queda camino que jode  lol lol lol lol.
¿que lenguaje es el recomendado para programar bien?

No es eso exactamente, en todos los lenguajes se puede programar bien, y en todos se puede programar mal, eso te lo dará la experiencia, yo creo que vas bien, lo único que te hace falta es seguir aprendiendo, probando, cagarla y volverla a cagar no te preocupes de cual es el mejor lenguaje porque cada uno te dirá uno distinto, para gustos los colores y para cada aplicación muchas veces si es uno mejor que otro, pero no te preocupes que todo llegara.

Por ejemplo, los lenguajes para PLC limitan muchísimo a un programador porque son maquinas que no se pueden permitir un software malo, y aun así, se pueden programar como el culo, y luego se ven las cosas que se ven.

Todos te dirán que c18 o cx18 es mejor para programar un pic que CCS porque te es mas control, y es cierto pero si no sabes usar ese control (como dice picuino) pues uno que haga un buen software en CCS pues te da mil vueltas, porque tu has usado mal el c18.

Debes de aprender a programar correctamente independientemente del lenguaje.

Por ejemplo, hay gente que usa los delay para cualquier retraso, mal, hay gente que actualiza el WDT, en cada while, mal.
Un buen código no debe tener bucles donde se pueda quedar pillado el código con zonas muertas, ni quedarse pillado al no recibir un dato,  si pasa cualquier imprevisto el micro debe de saber reponerse y no quedarse pillado, y mil ejemplos mas...
Todas esas cosas son las que hacen un buen software, sea el lenguaje que sea.

Un saludo.
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Dudas sobre la programación en C
« Respuesta #18 en: 16 de Agosto de 2015, 11:45:25 »
En fin, AGUANTE ASM!  :D

LLeva mucho tiempo sino seria muy lindo. Pero coincido con juaperser.

Citar
Por ejemplo un puntero de c "void *p;" es una bomba en potencia. Tienes acceso a toda la memoria sin restricciones.

Y no lo es cualquier puntero ? xD
El mayor problema de eso es que hay que tener especial cuidado por como se usa. Y estoy MAS que seguro que si se usa mal (al menos en un micro ARM, en los PICs no deberia haber tanto problema, ya que tendrias un valor erroneo a no ser ciertas partes de la memoria) tendrias una excepcion por un acceso que no esta alineado a la memoria. Pero con las consideraciones y especial cuidado que tenes que tener si es que usas un void pointer no habria problemas, sino lo deja de lado y sigue usando los otros punteros.

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re: Dudas sobre la programación en C
« Respuesta #19 en: 16 de Agosto de 2015, 14:26:07 »
Pues entendido y lo dicho anteriormente,.... cuanto más profundizo en el lenguaje de programación más me sorprende por la dificultad que puede llegar a alcanzar
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Dudas sobre la programación en C
« Respuesta #20 en: 16 de Agosto de 2015, 17:17:36 »
Ese es uno de los problemas del C para empezar a programar. Es bastante complicado, por lo que puede desanimar.
Un buen lenguaje para aprender debería tener una curva de aprendizaje más suave.

De todas formas, ya que estás con el C te animo a seguir con él. Es prácticamente el único que existe para microcontroladores (el assembler es de bajo nivel, casi código máquina y no me parece recomendable más que para pequeños fragmentos de código)

Para no aprender malos vicios con el C te recomiendo que a la vez aprendas buenas prácticas de programación.
También te recomiendo que aprendas Python. Te resultará fácil y util. Aquí un buen libro gratuito:
Aprenda a pensar como un programador (con Python)

Te cuento como ejemplo una buena práctica de programación: los espacios de nombres.
Se utilizan en los lenguajes orientados a objetos. Nombrar funciones y variables es todo un arte y una de las dificultades a la hora de hacer un buen programa.
Yo hace tiempo que he tomado la práctica de nombrar igual que en Python con espacios de nombres, pero adaptado al C. Por ejemplo:

Código: [Seleccionar]
int math_x
int math_y
int math_suma(int, int);
char led_a;
char led_b;
void led_on(void);
void led_off(void);
void buzz_on(void);
void buzz_off(void);

Todos los datos y todas las funciones de un archivo *.c comienzan por la misma palabra. A continuación coloco una linea baja '_' y después el nombre que corresponde a lo que hace la función o el significado del dato.
Este segundo nombre se puede (y se debe) repetir en varios archivos. Por ejemplo _on() _offf() _init()
De esta forma es mucho más sencillo nombrar y acordarse del nombre de la función o del dato.
En los lenguajes orientados a objetos las dos palabras suelen separarse con el caracter '.'

En realidad, todos los datos que puedo los meto en estructuras. De esta forma también se puede utilizar el caracter punto:

Código: [Seleccionar]
leds.a
leds.b
leds.c
leds.temporizador


Un saludo.







 

anything