He estado programando durante bastante tiempo, pero soy nuevo en Arduino y AVR Programming. La pregunta principal que tengo sobre la programación de estos microcontroladores es si existen diferencias importantes en el diseño de código en clases orientadas a objetos en comparación con la programación en línea más tradicional que he visto en muchos ejemplos.
En otras palabras, en el mundo de los controladores Arduino / AVR, ¿hay algún ahorro con la memoria y el rendimiento al utilizar clases o viceversa?
Digamos por ejemplo que tenemos una clase:
class SomeClass(){
private:
int x;
int y;
public:
void foo();
void bar();
}
SomeClass thisClass;
thisClass.foo();
thisClass.bar();
¿Habría algún rendimiento o ganancia de memoria al diseñar el programa de una manera más en línea como:
int x;
int y;
void foo(){ /*** Do something ***/};
void bar(){ /*** Do more stuff ***/};
Intenté hacer algunas búsquedas en Stack Exchange y Google, pero no pude encontrar la respuesta que estoy buscando. Lo más parecido que pude encontrar fue esta pregunta de Stack Exchange.
La razón por la que pregunto sobre esto es porque tengo un proyecto que debe ser lo más ligero posible y no tengo claro cómo debería diseñar mi programa en este entorno.
Editar
Gracias por las respuestas, esto ha arrojado luz sobre las cosas. Hay una cosa que no tengo muy claro.
Digamos que tiene una clase que está diseñando que utiliza u8glib de la siguiente manera:
class UserInterface{
private:
U8GLIB_ST7920_128X64 Display;
public:
UserInterface();
}
¿Cómo se movería usando "Memoria dinámica" como:
UserInterface::UserInterface(){
UserInterface::Display = U8GLIB_ST7920_128X64(LCD_E_PIN, LCD_RW_PIN, LCD_RS_PIN, U8G_PIN_NONE);
}