私はかなり長い間プログラミングをしていますが、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でいくつか検索してみましたが、見つけることができた最も近いものを探している答えが見つかりませんでした。このStack Exchangeの質問でした。
私がこれについて尋ねている理由は、できるだけ軽量である必要があるプロジェクトがあり、この環境で自分のプログラムをどのように設計すればよいのかわからないためです。
編集する
答えてくれてありがとう、これは物事に光を当てています。はっきりしない点が1つあります。
次のように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);
}