Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - MAFUS

#911
Eso es otra cosa. Supongo que la comunicación será pot puerto serie, emulado  (USB) o real. Deberás esperar en un bucle comunicación desde el puerto y actuar cuando recibas un o varios bytes que hayas preprogramado en el microcontrolador.

Por otra parte de búsqueda s programar el micro de forma que cada vez que pulses el botón debe enviar un o una secuencia de bytes por el puerto serie.
#912
De hecho si tienes dos prototipos de función con el mismo nombre, uno en el header y otro que introduzcas a mano en el programa van a colisionar y el compilador se va a quejar.
#913
Intenta crear un juego con SDL o crear una aplicación de ventanas con GTK. Estos dos entornos son en C puro. Te vendrán muy bien para seguir aprendiendo.
#914
En referente a tu primera pregunta: así es. De hecho la instrucción seguiría todos los pasos que te he dicho, pero al no haber nadie recogiendo el valor de ésta, el efecto final sería solo el incremento.

En referente a tu segunda pregunta: La instrucción sería ... *++envp .... De nuevo los operadores se evalúan de derecha a izquierda, por lo tanto ++ tiene prioridad sobre *. Como ++ en este caso es preincremento se ejecuta enseguida y después entrega el valor, que será pasado a * para conseguir el valor de la nueva dirección de memoria.
#915
Si miras la tabla de prioridad de operadores de C verás que * y ++ tienen la misma prioridad y se evalúan de derecha a izquierda. Además de esto hay que recordar que el postincremento aumenta la variable después de que esta haya devuelto su valor.

Juntando todo esto tenemos que:
1. *envp++ -> Una expresión para operar
2. envp++ -> Evaluados los operadores que afectan a la variable se toma es postincremento.
3. Como envp++ es un postincremento primero se tomará el valor.
4. *envp -> Se toma el valor de la variable (una dirección de memoria) y se ejecuta el operador *, consiguiendo el valor que guarda dicha dirección.
5. envp++ -> Se termina de ejecutar el operador de postincremento sobre la variable y la hace apuntar a la siguiente posición de memoria.
#916
... *var++ ...

Es lo mismo que hacer
... *var ...
++var;
#917
Como es en ventanas, y supongo que en Windows, ya no tengo conocimientos de ello. Seguro alguna otra persona pueda darte mejor ayuda.
De forma general, y por si pudieras mirarlo por ti mismo si no hay más ayuda, debes registrar el evento de tecla pulsada a la ventana principal del programa. Una vez se dispare miras si la tecla que se ha pulsado se corresponde a la tecla 'c'. Si es así cambia el valor de una variable que controle la llamada a tu función a True para que tu programa llame a dicha función. De igual forma se se vuelve a pulsar 'c' la variable pasará a False y el programa ya no llamará tu función.
#918
No, decía si el programa va a ser para la consola o sería en ventanas.
#919
Pues lo dicho, hasta que no aprendas a usar cadenas no podrás hacerlo como quieres.
#920
C no tiene variables indefinidas. Pero puedes hacer otra cosa: por ejemplo tomar una cadena. Si la lees y es un dato numérico transfórmalo como tal y lo introduces en una variable, si es un retorno de carro trata eso como valor no definido.