プログラミング– category –
-
[C/C++] リスト構造体(チェーン構造)の書き方と使い方
構造体の配列を使いたいけど、要素数が未確定のため何回もreallocすることになって、処理が重たい。。。という場面に遭遇したことはありませんか?このような場合は、配列では無くリスト構造にするとreallocする必要がなくなり、要素の追加、削除、挿入の... -
[C言語 標準ライブラリ] ctype.hの使い方
ctype.hをインクルードすることで、文字を識別する関数群と大文字⇔小文字に変換する関数が使用可能になります。 関数 int isalnum(int c) 引数が英数字('A'~'Z'、'a'~'z'、'0'~'9')の場合に真、それ以外の場合に偽を返します。 使用例: #include <... -
[C/C++] 二重インクルードによる型の再定義を防止する方法(インクルードガード)
プログラムの規模が大きくなってくると、ヘッダーがヘッダーをインクルードするような場面が発生してきます。このとき、複数のヘッダーをインクルードした場合に、型の再定義が発生してビルドエラーになる場合があります。このような場合を予め想定して、... -
[C言語 標準ライブラリ] assert.hの使い方
マクロ NDEBUG #include <assert.h>では定義されません。NDEBUGを定義すると、後述するassertマクロ関数を無効にすることができます。Visual Studioでは、リリースモードの場合にプリデファインとして定義されます。デバッグモードの場合は定義され... -
[C++/STL] std::stringクラスの使い方
std::stringはC++標準ライブラリ(STL)の文字列クラスです。char型の配列を使うよりとっても便利になりました。メモリのalloc/freeを自動でやってくれます。 ここでは、よく使う機能に絞って説明します。より詳しく知りたい人はcpprefjpで勉強することをお... -
[C/C++] switch文のインデントの付け方
switch-caseのcaseはインデントする派?しない派? switch文のインデントってどうしてますか? よく教本では、下記のソースコードのように、caseにインデント付けていますよね。 switch(data){ case 0: break; case 1: break; default: break; } 古い書籍... -
C言語入門を作成しました!
C言語入門者、プログラミング初学者向けに、C言語の重要な部分に絞った解説ページを作成しました。(細かい部分はだいぶ端折りました) C言語入門のTOPページ まだまだわかりくい部分がたくさんあると思いますが、少しずつ改善して良い入門講座にしていき...