Я давно программирую, но я новичок в программировании Arduino и AVR. Главный вопрос, который у меня возникает по поводу программирования этих микроконтроллеров, заключается в том, есть ли серьезные различия в разработке кода в объектно-ориентированных классах по сравнению с более традиционным встроенным программированием, которое я видел во многих примерах?
Другими словами, в мире контроллеров Arduino / AVR есть ли экономия памяти и производительности за счет использования классов или наоборот?
Скажем, например, у нас есть класс:
class SomeClass(){
private:
int x;
int y;
public:
void foo();
void bar();
}
SomeClass thisClass;
thisClass.foo();
thisClass.bar();
Будет ли какая-либо производительность или увеличение памяти при разработке программы более встроенным образом, например:
int x;
int y;
void foo(){ /*** Do something ***/};
void bar(){ /*** Do more stuff ***/};
Я попытался выполнить некоторые операции поиска в Stack Exchange и Google, но не смог найти ответ, который я искал, и самым близким, что мне удалось найти, был вопрос об обмене стека.
Причина, по которой я спрашиваю об этом, заключается в том, что у меня есть проект, который должен быть как можно более легким, и я не понимаю, как мне следует разрабатывать свою программу в этой среде.
редактировать
Спасибо за ответы, это пролило свет на вещи. Есть одна вещь, которая мне не совсем понятна.
Скажем, у вас есть проект, который вы разрабатываете, который использует u8glib следующим образом:
class UserInterface{
private:
U8GLIB_ST7920_128X64 Display;
public:
UserInterface();
}
Как бы вы обошлись, используя «Динамическую память», как:
UserInterface::UserInterface(){
UserInterface::Display = U8GLIB_ST7920_128X64(LCD_E_PIN, LCD_RW_PIN, LCD_RS_PIN, U8G_PIN_NONE);
}