• ベストアンサー

C言語のコーディングの仕方

C歴2か月未満の超ビギナーなのですが、 表題の件で質問します。 私は、Visual Studio2005でCのコーディングをしています。 ちなみにベタ打ちのコーディングです。 で、プログラムが長くなってきて、 自分でつけた変数や他人さまのプログラム見本コピペしたコードを 追いかけると、マウスの真ん中のボタン絶えずクルクル状態で、 頭の中も微妙にくるくると混乱してきます^^; 本日それが効率の上がらない原因ではとハタと思いました。 (違う突っ込みはお止め下さいませm(__)m) そこで、皆様はC++ではなくCの時は、 どうやって長文になるコーディングをしているのでしょうか? ぜひぜひお教え下さいませ。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

先ずは形から入るとして、下記ページを参考に自分なりのコーディング規約を作ってみてはどうでしょうか。 プログラムの規模が大きくなれば設計が重要になってきます。 どんな処理を行うかを箇条書きにすることで、構造化やファイル分割の助けになります。 C言語の上手な書き方 http://www.sra.co.jp/wingnut/standards/standards-ja_5.html C/C++ コーディング規約 http://www.coding-standard.com/MC_C/ Cコーディング・スタイル例 http://www.6809.net/tenk/html/prog/cstyl_ex.htm

micchicchi
質問者

お礼

Hayashi_Trek様、 たいへん参考になるリンクとコメントありがとうございます! 明日にでも目通してみます!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.2

>どうやって長文になるコーディングをしているのでしょうか? どうやって「長文にならない」コーディングにするかを考えます。 例えば、いきなり10000ピースのジグソーパズルを作ろうとすれば それは大変な作業になります。 しかし、100ピースなら少し慣れれば容易に作る事ができます。 100ピースでできたジグソーパズルを1つのピース(モジュール)と した物を100個作れば、それを作る作業は100ピースのジグソー パズルを作るのと同様な手間ですみます。 数十万ステップの大規模のシステムの場合でも、その繰り返しで 作成できます。

micchicchi
質問者

お礼

なるほど! 耳が痛いです>< がんばって、修練してみます!

全文を見る
すると、全ての回答が全文表示されます。
  • pyonmae
  • ベストアンサー率64% (40/62)
回答No.1

ある程度ご自分の中で答えをお持ちのご様子ではありますが、一応ご回答申し上げたく思います。 大作プログラムを作成する場合は、ほぼ漏れなく、ソースを分けます。 ソースを分けると、タブをパチパチ切り替えたりできるので、クルクルにパチパチが加わって効率が多少上がります。 もちろん、むやみに分けるとかえって見づらくなるので、分け方はそれなりに考えます。 それ以前に、プログラム作成に際してこりゃー大作になるな、と感じたら、コーディングを始める前にラクガキ程度にでも設計図を書いてみた方がいいです。マルと矢印を書くだけで随分違ってきます。 あと、面倒でもコメントをキチンと書いておくと、長いファイルになってもクルクルで探しやすかったりします。

micchicchi
質問者

お礼

クルクルのパチパチで たいへん脳細胞に刺激的な言葉ありがとうございますm(__)m 設計図が大切なんですね^^; 参考になりました。 もとより初心者ですが初心に帰ってがんばります!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 自宅でlinux環境を作ってC言語を書けますか?

    表題の環境でコーディングをしたいです。 【質問1】 参考になるサイトなどはありますでしょうか? 【質問2】 linux環境での開発を、windows環境で開発をすることは可能なのでしょうか? 仮にvisual studio が入っているwindows環境があったとして、 makeファイルをvisual studio 用に変換&インポートしたり、 逆にvisual studioのプロジェクトファイル?をmakeファイルに変換したりすることをしたいです。 参考になるサイトなどはありますでしょうか? .

  • あなたのC言語コーディング規約

    勤務先・学校・趣味でC言語を使用してプログラムをしている方の多くは組織内で決めているコーディング規約に沿ってプログラムをしていると思います。 しかし、全てに関して規約化されていることは少なく、ある程度プログラマの裁量に任せていることがあると思います。 そこで、質問です。 「あなたの中で決めているコーディング規約は何ですか?」 「また、その理由は何ですか?」 私が決めているコーディング規約を一例挙げると以下の通りです。 (基本は他人が見ても直ぐに理解できるように心がけてます。) ------ □変数名の前には必ず型を現す文字を書く 理由:観ただけで型が分かるから。 例 :int型は、iData    char配列は、stData    ポインタは、pData □関数の復帰値は、一旦必ず変数に代入する。 理由:代入しないとデバックがしにくい。 例 :iRetCode=func();    switch(iRetCode){      case文    }    の、ように色んな値を試すときに不便。 □if文には、極力「!」(NOT)は使用しない。 理由:複数の論理和・積などが入った場合ややこしいので    elseで代用する。(真の時の処理はわざと書かない) □if文の判定には必ず定数値を左辺に持ってくる。 理由:if(iData=0)とかの"=="を"="にしてしまうミスを防ぐため。    (コンパイラによっては、警告が出るものもありますが…) 例 :if(0=iData)など □while(1)は、基本的に使用しない。 理由:無限ループに陥らないようにするため。 ------

  • C言語の違いについて

    同人でファイナルファンタジータクティクス(戦闘は立体的な3Dマップで行われる)のようなシミュレーションロールプレイングゲームを作ろうと思っています。 プログラムは初心者だったので、まず一番基本といわれているC言語を一通り勉強しました。 これから少し実践的にゲームプログラミングをしてみたいと思っていて、無料のVisual Studio 2008 Express editionをダウンロードすることにしましたが、内容が、 Visual Web Developer 2008 Express Edition Visual Basic 2008 Express Edition Visual C# 2008 Express Edition Visual C++ 2008 Express Edition と四つあります。上記のようなゲームプログラミングをするにはどれが最適なのでしょうか? C# か C++ と聞いたことがあるのですが何せ初心者ですので詳しいことがわかりません。 どなたか詳しい方がいましたら、簡単にで結構ですので四つの違いを説明して、どれが最適なのかお教えいただけませんでしょうか?よろしくお願いします。

  • C言語のPathFileExistsについて

    visual studio 2010、C言語でPathFileExistsを使って ファイル有無のチェックをしようと試みましたが、 コンパイルエラーになってしまいました。 環境はwindowsXP、SP3です。 参考にしたいくつかのサイトでは、visual studio 2010ではPathFileExistsを使って ファイル有無をチェックできると書いてあったのですが、 visual studio 2010でもC言語だとPathFileExistsは使えないのでしょうか? TEST.C #include <stdio.h> #include <shlwapi.h> int main() {   char path[128];   sprintf( path, "c:\\tmp.txt" );   if ( PathFileExists(path) ){     printf("ファイル有\n");   }   else{     printf("ファイル無\n");   }   return 0; } TEST.OBJ : error LNK2019: 未解決の外部シンボル __imp__PathFileExistsA@4 が関数 _ main で参照されました。 TEST.EXE : fatal error LNK1120: 外部参照 1 が未解決です。 NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 10.0\VC\BI N\link.exe"' : リターン コード '0x460' Stop.

  • windows10でVC6.0++のclを使いたい

    cl.exeの場所:C:\Program Files\Microsoft Visual Studio\VC98\Bin 環境変数INCLUDE設定:C:\Program Files\Microsoft Visual Studio\VC98\Include 環境変数LIB設定:C:\Program Files\Microsoft Visual Studio\VC98\Lib を登録したのですが、mspdb60.dllがないといわれました。 検索したらあるのですが、 どうすれば、Windows10でvc6.0++のCコンパイラを使えますか? 教えてくださいよろしくお願いします。

  • アマゾンでC言語のソフトを見ました

     緑色の箱の「Visual Studio 2005 Academic Edition」の商品説明のところで 「Visual Basic、C++、C#、そしてJ#(Java言語)により、WindowsやWebアプリケーションに加えて・・・」とあったんですが、ただのC(「#include <stdio.h>」 から始まる言語。)はできないですか? 大学で習っているのがCなんで、このソフトを買ってもだめですか?  このソフトをもっている方いますか?家にプログラムをやる環境が揃っておらず、bolandなどからインストールするのも手間がかかって、これを見つけたんですが、これは難しいですか?

  • Visual ~関係のプログラミング言語

     現在C++で統計解析のためのプログラミング(といってもコンソールプログラムですが)をしています。  Visual Studio、Visual Basic、Visual C++、Visual C#、Visual J#とかだと比較的簡単にプログラミングができるようなので、少しやってみようと考えています。 そこで、どれを購入しようか悩んでいます。正確にはBasicかC++のどちらかにしようとしているのですが、何かアドバイスをお願いします。ちなみに、Visual Studio.NET Professionalは使用言語を選べるようですがコスト面など等なども含めてご教授お願いします。

  • C++プログラムに変換

    Visual Studio .NET 2003を使っているのですが、C#のプログラムをC++のプログラムに変換して使用したいのですが、可能でしょうか? またVBのプログラムもC++に変換して使用したいのですが、可能でしょうか? どうか教えてください。

  • Visual C++ Express Edition でもprintf

    Visual C++ Express Edition でもprintfを使いたい 私は、Visual C++ 2008 Express Editionを使っています。  以前はVisual Studio 2005 Professionalを使っていました。 今まではプログラムを走らせている間の変数の変化を見るために、 printf関数を使って「出力」ウィンドウに数値を表示させていました。 Visual C++ 2008 Express Editionに変更してから、 同一のソースコードをコンパイル、実行しても printf文で記述した出力内容を「出力」ウィンドウに表示させることができません。 これは、Express Edition特有のものでしょうか? printfを使って変数を表示できる方法があれば教えてください。 よろしくお願いします。

  • Visual Studio 2008でのC言語のサンプルコード実行につ

    Visual Studio 2008でのC言語のサンプルコード実行について教えてください。 他のプログラミング言語の経験はありますが、C言語とVisual Studioの開発環境は初めてでつまずいています。 C言語で書かれたたくさんのサンプルコードを、 Visual Studioと、Visual Studio コマンドプロンプトでテストしたいのです。 「test」というソリューション(プロジェクト)の下に、「新しいクラス」を追加して、 サンプルコードをコピペして、順次デバックでテストしようとしたところ、 ひとつのプロジェクトの中でmainが重複してしまいエラーになります。 main重複でエラーは当たり前とはいえ、 サンプルコードごとにプロジェクトを作成するのは大げさすぎる気がすることと、 体裁にこだわらず、とにかくデバックで各コードが動くことを確認したいこと、 サンプルコードの書き出し(main関数)などを修正してサブクラスに書き直してデバックすれば mainの重複とみなされず、手軽にVisual Studioでテストできるのではないかと やり方を調べています。 2つ目以降を、サブクラスにすればmainの重複がなくなるでしょうか? その場合、最初のmain関数 int main (int argc, char **argv) をどう修正すればいいのでしょうか。 それとも、何か別のやり方で、Visual Studioで手軽にテストする方法があるでしょうか。 調べてみたのですが、具体策がわからず困っています。 今回初めてVisual Studioに触れましたが、今後長く使いたいので別の環境に逃げずいろいろ勉強したいと思っています。 もし何かお心当たりがありましたら、ぜひ教えてください。 宜しくお願い致します。