C/C++c言語でプログレスバーを表示する|ASCIIエスケープコード 先日、C言語でASCII文字がくるくる回るスピナーの作り方を投稿しました。 今回は、プログレスバーを作ってみます! ソースコードと実行例 いきなりコードです。 #include <stdio.h> #include <uni...2017-01-232023-02-09C/C++
C/C++c言語で待ち時間を示すスピナーの簡単な表示法|キャリッジリターン 先日、Bash のシェルスクリプトでスピナーを表示する方法を示しました。スピナーとは、ざっくりいうと待ち時間を示すためのアニメーションですね。下記の例ではアスキー文字「-」「/」「|」「\」の4つを使って、風車のようにクルクル回るスクリプト...2017-01-192023-02-09C/C++
C/C++組込みソフト向けC言語コーディング規約|標準ライブラリ この記事では標準ライブラリを使うさいに注意すべきことを記載します。 標準ライブラリ関数で実現できることは標準ライブラリ関数を使用してください。特にメモリ操作系、文字列操作系の関数をわざわざ自作していることがよくあります。例えばmemcpy,...2016-12-282019-01-11C/C++
C/C++組込みソフト向けC言語コーディング規約|ポインタ この記事ではポインタの注意すべき点について記載します。「ヌルポインタ」や「ポインタ演算」が、よくバグが発生する箇所です。 他のコーディング規約は下記のページを参照してくださいませ。 ヌルポインタの表現には0でなく"NULL"を使用す...2016-12-272017-12-29C/C++
C/C++組込みソフト向けC言語コーディング規約|演算と式 この記事では演算と式について記載します。一般的に「キャスト」「浮動小数点」「シフト」によくバグが入り込みます。キャストせずしないですむように、設計時にデータ型を慎重に選択してください。また特に理由がなければchar型やshort型でなくin...2016-12-262018-12-29C/C++
C/C++組込みソフト向けC言語コーディング規約|変数の定義と宣言 この記事では変数の定義と宣言について注意すべきことを記載します。 変数も関数と同様に、「定義」とは実際にメモリ上に配置されることで、「宣言」とはどこかに定義があることを示すだけのものです。「extern宣言」しても、メモリ上には配置されませ...2016-12-222017-12-29C/C++
C/C++組込みソフト向けC言語コーディング規約|型の定義(構造体、列挙型、ビットフィールドなど) この記事では型の定義について記載します。ここではtypedefにて型を定義するときを想定しています。構造体、列挙型、ビットフィールドの定義が主に該当します。typedefは文法上見落としやすい落とし穴が意外に多いので、要注意です。 ビット...2016-12-192017-12-29C/C++
C/C++組込みソフト向けC言語コーディング規約|関数の定義と宣言 この記事では関数の定義と宣言について注意すべきことを記載します。「定義」とは実際にメモリ上に配置されることです。「宣言」とはどこかに定義があることを示すだけのものです。例えばプロトタイプ宣言をしても、これは「宣言」なので実際に関数のコードが...2016-12-142017-12-29C/C++
C/C++組込みソフト向けC言語コーディング規約|マクロとプリプロセッサ この記事ではC言語でプリプロセッサを使うときに気をつけるべき項目を記述します。プリプロセッサは C 言語と違う文法を持っているのでバグの温床となりやすいです。可能な限りプリプロセッサを使わないでください。通常はプリプロセッサが必要になるのは...2016-12-102017-12-29C/C++
C/C++「C++11 コア言語」のフリー版 オンラインドキュメント|上級者向け 近頃は C++ のお勉強をしています。組込みでなく GNU/Linux 上で動かすためのです。その中で、ステキなオンラインドキュメントを見かけたのでご紹介です。 さて、C++ といえば、C言語ユーザから見ると「は?正気か・・・?」というレ...2016-10-202018-09-25C/C++