C/C++

C/C++

#defineを使うのは代替手段が無い場合のみに抑えたい

C言語及びその派生のC++、Objective-Cでよく使われているマクロとして、#defineがある。これは、特定の文字を別の文字に置き換えるというマクロで、C言語を中心に多重インクルードの防止や定数、インライン展開する関数などにマクロが...
C/C++

C++を学びたいときはまずC言語から学ぶべきなのか

C言語とC++、ネイティブアプリケーションではどちらもよく使われている言語であり、我々が使っているアプリケーションや、果てには基礎に関わる部分の多くがC言語及びC++で書かれている。そういう意味では必ずと言っていいほど我々がコンピューターを...
C/C++

blocksを使う

近年のObjective-Cアプリ開発ではしばしば使われていて、私も比較的頻繁に使っている構文の中で、blocksというものがあるが、いわゆるクロージャーやラムダ計算、無名関数などと呼ばれるもので、関数名を指定せずに関数を定義することができ...
C/C++

インクルードガードでUUIDを使用する

CやC++ではヘッダーファイルをインクルードする際に、一度インクルードされたヘッダファイルの内容を何度もインクルードされないように ((CやC++では変数や関数などを使用する際に定義を書かれたヘッダファイルを読み込む必要があり、#inclu...
C/C++

再帰呼び出しが不要なら通常のループで

ここでは敢えてC/C++で触れているが、もしかしたら他の言語でもありえるかもしれない。何らかの処理を行っている時に再帰呼び出しを行うときがあるが、実は再帰呼び出しは問題を引き起こす可能性がある。
C/C++

マクロVSテンプレート

CやC++でプログラミングを行うときに、往々にしてマクロを使う。例えば以下の様にある値の乗数をとる場合、変数の型が不定の場合に以下のようにマクロを使うことがある。 #include <stdio.h> #define MULTIPLY(a,...