C/C++ に関する記事です
C言語の列挙型の真面目な使い方
C言語には列挙型 enum というものがあります。かなり便利な機能なのですが効果的に使われていることは少ないように思います。そこで、列挙型を正しく使うとどのようなご利益があるかを説明したいと思います。 マジックナンバーを使った例 例題として...
printf デバッグ(デバッグプリント)の書き方
デバッグするときはデバッガを使うのが定石ですが、なんらかの事由によりそれがかなわないときもあるでしょう。そのとき頼りになるのが片っ端から printf 文をいれていく方法、いわゆるプリントデバッグです。 CPUのレジスタなどはわかりませんが...
C言語の静的解析ツールを使ってみよう!|Splint
C/C++言語の静的解析ツール、使っていますか?仕事で使う場合は有償のもの(QACやpgreliefなど)を使うことがおおいと思います。しかし休みの日に家でコードを書いたりするときにも個人で静的解析ツールを使いたい場合もあると思います。そこ...
C言語で作成した実行可能ファイルのシンボル情報を削除|情報漏洩を防ごう
業務などでC/C++言語で作ったプログラム(実行可能ファイル)をリリースしたり他の人に渡すことがあると思います。 その時にシンボル情報というものに気をつけていますでしょうか? シンボル情報というのは関数名とか変数名などの情報です。 例えばデ...
侍エンジニア塾のmallocの解説をざっくりデバッグ
2018-10-18に侍エンジニア塾の該当記事が修正されたようです!!!コード上の問題点も改善された模様。 下記は修正前の記事について書いています、その点ご留意ください! 「侍エンジニア塾」の評判、なにやらよろしくないようですね、気の毒にな...
C言語で2の累乗(2^n)への切り上げ&切り捨て
2の累乗(2^n)の値への切り上げ&切り捨てについて、効率的なC言語のコードの書き方をご紹介します。組込みファームウェアでは、2の累乗への丸めをする必要がままあります。またコードサイズを小さくすることが求められます。そこでビット演算を使った方法をご紹介します。
C/C++でアライメントされた領域を確保する方法|aligned_alloc, posix_memalign, alignas
C/C++にてアライメントされた領域を確保する方法の説明です。可搬性の高いと思われる aligned_alloc, posix_memalign, alignas についてコード例を挙げて説明しています。
超便利!C/C++他30種類のプログラムをその場で実行確認できるサイト|Wandbox
今回はWandboxという便利サイトの紹介です。その場でプログラムの実行結果を確認できるサイトで、多くの言語(30以上!)に対応しています!
超便利!C言語のアセンブラ出力を即確認できるサイト|compiler-explorer
Web上ですぐにC言語をアセンブラ出力してくれるサイトcompiler-explorerの紹介です。複数の
C言語のコードをアセンブラ出力を確認しながら最適化する
組込みではコスト削減のためにCPUやメモリが貧弱な場合があります。また、コンパイラが最適化を完璧にできるとは限りません。そこで今回は、自分でアセンブラ出力を見ながらC言語を最適化する例をループ処理にて示します。