使わなくても良い方法が提供されています。安全で、優れた機能が提供されているのに、何故、危険で制限のある古い方法を使うのか理解に苦しみます。使わないと、どうしても解決出来ない事が全く無い訳では無いのですが、それは、「稀」な事と思います、普通は、使わなくても何とかなる事の方が多いハズです。アセンブラのマクロ命令のように、人間による最適化を施した拡張命令のように捉えられていると思われますが、「最適化」はいくつかの例外を除いて、人間がやるよりコンパイラに任せた方が安全で確実であると思います。※精妙な最適化は、それが必要になったら行うべき事項であり、開発途中の中途半端な段階で行うのは問題が多く実りが少ないと言えます。最大の最適化でも、「関数の呼び出し」を尊重してコンパイルします、その関数が少ないステップで構成されている場合でも、指示の無い事は行いません。設計者が、ステップ数や、実行時間の比率などを考えて、関数を展開した方が有益と判断されるなら、「inline」を宣言する事で、その関数は展開され、呼び出しのコストが取り除かれます、ただ、注意しなければならない事があります、どんな場合でも「展開」する事が有益だとは限らない事です、たとえばキャッシュが小さいマイコンの場合は、展開する事で、キャッシュのヒット率が悪くなり、逆に速度が落ちるかもしれません、結局、計測してみないと本当の事は判らないと言う事です。※もちろん、キャッシュが無いような小規模なマイコンでは、当てはまりません。※「計測」は非常にスキルの必要なエンジニアリングです、浅はかな計測では大抵真実は明らかになりません。利用法として、ハードウェアーの制御や定数の定義などがあります。9600,};のように、名前空間などを利用した構造的な定義が出来ます。最適化されれば、余分なメモリーを消費する事も無く、参照されずに直接アセンブラ命令に埋め込まれます。型が都合悪ければキャストする必要があります。ポートを無効}↑のように、あるデバイスにデータを出力する手続きを実装したものです。定義する事が多いように思います。殆どの場合、テンプレート関数でそれを置き換える事が出来ると思います。}引数がある場合は、その引数の「型」を定義できるので、正確で安全です。使わなくても可能な例です。※配列サイズを超えたら、例外を投げるとか、色々拡張する事もできるでしょう。※参照を使っているので、関数に直接値を代入するような書き方が可能です。「キャスト」について、アセンブラ的に、単純に警告を取り除く為の手段として利用しているのが殆どのように思います。キャストはたとえば、こんな感じの物です。いくつかのキャストが用意されており、場合によって使い分けます。キャストは、変換が可能か不可能かに関係なくエラー検査無しに変換します。キャストを使う」と言っている人がいましたが、反面教師にすべきです。使いますが、もし変換が出来ない場合はエラーとなります。キャストを使わないようにして下さい。取り除くようなキャストも行ってはなりません、そのような操作は、基本的に間違っています、通常、設計を正しくする事で避ける事が出来ます。他のキャストについては、リファレンスを参照して下さい。(7)警告コンパイラが出力するレポートは非常に重要です、エラー検査は最大レベル(厳しいエラー検査)を設定し、一つでも警告が出たら、実行する前に、警告を取り除くようにソースコード修正する「クセ」をつける必要があると思います。良くありがちな事として、「警告は最後にまとめて取り除く」という方針を実践している人がいますが、間違いです、「警告」が出るのには理由があり、コンパイラがソースコードの構造的欠陥を指摘しているのですから、警告が出ないような、抜本的な改修や、綺麗な設計が必要です、これらの優先順位は最後に回すべきものではなく、「今」行うべき事項であると認識して下さい。※「警告」が沢山出るプログラムは、そもそも設計が良くない場合も考えられます。