
Arduino環境ではツールチェーンの上に一枚かぶさっているプリプロセッサ的なものが皆よきように計らってくれるのでお楽。しかし、たまにコンパイラオプションを操作しようと思うと隠されている分メンドイです。まあその前に、メンドクセーものどもが画面に映らないように制御もされとるので、それを外して現実を見るところからっすけど。
“オプション沼(27) Arduino IDE 2.x、コンパイラオプションの在処” の続きを読む
デバイス作る人>>デバイス使う人>>デバイスおたく
Arduino環境ではツールチェーンの上に一枚かぶさっているプリプロセッサ的なものが皆よきように計らってくれるのでお楽。しかし、たまにコンパイラオプションを操作しようと思うと隠されている分メンドイです。まあその前に、メンドクセーものどもが画面に映らないように制御もされとるので、それを外して現実を見るところからっすけど。
“オプション沼(27) Arduino IDE 2.x、コンパイラオプションの在処” の続きを読む
前回はmultichar定数への警告でした。今回はmultiつながり?で multistatementマクロに対する警告の発出です。C++ならテンプレートというものがあるのでそれに任すのも手なのでしょうが、Cのマクロには多くを期待しない方が良いように思ってます(個人の感想です。)たまに人様の超絶マクロに感動しますが。
組み込みで weak symbol を目にするのは割り込み関係かもしれません。ビルド時にエラーにならないように「とりあえず」weakな奴を並べておいて、後でユーザが実体関数を書いたらそっち、みたいな。前回Waddress オプション使ったときにweak symbolについてチラッと書いてあったです。今回はその確認っと。
“オプション沼(19) gcc、weak symbolの真偽、続-Waddressオプション” の続きを読む
「とりあえず」警告は全部載せの -Wall オプション使っておけと言われます。しかし、ここはあえてバラバラに警告オプションをひとつひとつ丁寧に?味わっていきたいと思います。それにしても-Wallに含まれる警告オプションだけでいくつあるんだ?それに警告の裏側には新たな世界が広がってるみたいな兆候も。大丈夫か。
“オプション沼(18) gccの-Waddressオプション、警告オプションその1” の続きを読む
元より野次馬、このところgccのオプションの「なんだかわからん」「不穏な雰囲気がする」やつらをめぐっております。今回は -fno-builtinオプションとな。コンパイラ素人の勝手な理解では、gccが「内蔵する」ビルドイン関数を使わないでくれとリクエストするためのオプション、である筈。しかしこの使い方が分からないデス。
“オプション沼(17) どしたら差が出る? gccの-fno-builtinオプション” の続きを読む
元より野次馬、不穏な気配のたなびくところにひかれます。前回が「小さい闇」なら、今回のは「おおきい闇」でしょうか。以前から2つのオプションに関する説明の書きぶりの「不貞腐れた感じ」が気になっていたのです。ウルセー奴らがいるから、あるいは、あんたの思っているのとは違うぜ的な。元より素人、ちょっとのぞき見してみるだけ。 “オプション沼(16) ANSI-C(ISO-C)の闇? -ansiと-pedantic” の続きを読む
遥か太古の時代、C言語をかじり始めた最初からインクルードガード書いてきました。メンドクセーけど真面目にCプログラム書くときは必須。しかし書かずに済ませる方法があったです、#import。元はといえばObjective-Cの機能みたいですが、gccならフツーのCでも使えていた。知ってた?でも今はその立ち位置微妙。
“オプション沼(15) インクルードガードの闇?-Wno-import、#importは非推奨” の続きを読む
別シリーズのRust記事にて時間計測しようとしたらばコンパイラの最適化のために計測対象が「消えてた」件これあり、ありがち?今回こちらでは消えて(飛ばされてしまう)c言語コードをあえて作成しgccの最適化オプションの「威力」を痛感してみたいと思います。最適化は奥深いのでまたやるつもりですが。 “オプション沼(14) 最適化で以下省略なコード書いてみました。gcc -O3オプション” の続きを読む