Visual Studio .NET 2005 でCの開発

うちの会社には、知らない人が多いので、文章化して整理してみる。
VBC#と多彩な言語もさることながら、VC++でもいろいろな開発スタイルがある。

種類

VC++で開発すると以下のスタイルがとれる。


以下にその特徴を述べる。

C++


後述のVC++との違いは、をインクルードするか、否か。
インクルードしないコードは、C++準拠と言える、、、かもしれない。
このコードは、UNIX系OSでも(比較的)通しやすい。
プレーンCとの違いは、クラスを扱うこと。
、、、というか、C++を名乗るなら、クラスを使うべき。

VC++


Windowsしかターゲットでない、C++プログラムとしてスタンダードでは?

プレーンC


拡張子を「.c」にすることで、自ずとC++の記法は使えなくなる。
なお、関連をインクルードした場合は、プレーンVC。
メリットは今となってはほとんどない。
Cで書いた方がC++で書くより早いコードになるのは、技術力が高い人のみ。

MFC


プロジェクトのオプションで、「MFCを使う」にする。
ファイル毎にも選択可能だが、あまり意味はないと思われる。
個人的には、MFCで作ったものは、VC++と別モノ。

.NET C++


.NETフレームワークを使った、マネージコード。
個人的には、一番オブジェクト指向にそえる気がする。
.NET Frameworkを使うなら、C#が良いと思う。
が、コンパイラの性能が.NET C++の方が良いらしい(ウワサ)

ATLやSTLというのもある。
それぞれ独特な匂いがする。

速いのは?

やりたいことによって違うので、単純評価はできない。
イメージとしては、「他」を除くと
プレーンVC > プレーンC > VC++ > C++ > MFC > .NET C++
と考えている(あくまで、私のイメージ)
ただ、プレーンVC 〜 C++ までは、それほどの差はないと思っている。
なので私は、VC++で開発することが多い。
クラスを使いたいし、リンクするDLLは少ない方が良い。
、、、まあ、DLLはむやみに少なくすれば良い話ではないが。

匂い

コーディングスタイルは、宗教に似ている。
他人のスタイルが気に入らん、と拒否するのは良くない。
信仰の自由は認めましょう。
ただ、MFCなり.NETなりを使うなら、その流儀に従うこと。
いろんな匂いが混ざると、異臭になるものです。


後からメンテすることを考えて、この意識は常に持って欲しい。
どのスタイルで開発するか。