基本文法

「基本文法」の編集履歴(バックアップ)一覧はこちら

基本文法」(2007/12/06 (木) 22:00:17) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*基本文法 基本文法っていうか、ソースコードを書くときのルール?みたいな。 始めに読むべきところではないです。ある程度C言語を知ってから読むといいかも。 **改行 スペース タブ C言語において、改行やスペース、タブはソースコードを見やすくするためのものでしかありません。 文末は、改行ではなくセミコロン「;」が表現します。よって、下のままではコンパイラにしかられます。 printf("hoge\n") きちんとセミコロンをつけましょう。 printf("hoge\n"); 初心者のうちに多いミスとして、セミコロン忘れ、変数、関数名のスペルミスがあります。 慣れるまでこの三点には気をつけましょう。 また、以下のような改行、スペースの使い方は正しくありません。 prin t f("hoge \n "); C言語では、文字列中に改行を含めることは出来ません。変わりにエスケープシーケンスの\nを使いましょう。 さらに、以上のことは改行によってソースコードの意味が変わることはない、ということも意味します。 例えば以下の二つのソースコードはコンパイルすると同じ実行ファイルを出力します。 #include <stdio.h> int main(){ printf("YUKI.N> sleeping beauty\n"); return 0; } #include <stdio.h> int main(){printf("YUKI.N> sleeping beauty\n");return 0;} **コメント C言語ではプログラムの任意の場所に、コメントを書くことができます。 文法は以下のとおりです。 /* comment.... */ 「/*」と「*/」で囲まれた部分全ては、コメントとして扱われます(コンパイル結果に影響しません)。 自分の書いたソースコードを他の人が読む時に、理解の助けとなるようなコメントを書きましょう。 それは一ヵ月後の自分かもしれませんが… :-p **字下げ ソースコードは人が書くものであると同時に、人が読むものでもあります。 人が読みやすくするために、ある程度「書き方」というのが決まっています。 その一つが字下げ、インデントです。 プログラムの階層ごとにタブや任意個のスペースを入れることをいいます。 /* ここは一番外側 */ int main(){ /* ここは main の中 */ if(0){ /* ここは if の中 */ } /* ブレースは始まり(この場合は if)と同じところに */ } /* ブレースは始まり(この場合は main)と同じところに */ 複数人でソースコードを書くときは、共通のルールの上で書かないと混乱します。 恐らく多分メイビー、スペース四個が一番一般的です。特にこだわりがなければそうしましょう。 あまりにも関数の引数が多すぎるときなども、字下げすることがあります。 many_many_many_many_parameter_function(takusan, aruyo, motto, motto, aruyo, hoge, huga, hage, hige, piyo, poyo, payo, puyo); /* 長すぎる */ many_many_many_many_parameter_function(takusan, aruyo, motto, motto, aruyo, hoge, huga, hage, hige, piyo, poyo, payo, puyo); **名前 配列の添え字として使う変数名は「i」や「j」、二次元配列なら「x」「y」などを使うのが習慣です。 基本的に変数名、関数名にはローマ字は使わないようにしましょう。 int korehadamenarei; /* 自重しろ */ int koreha_mada_masi; /* 努力は認める */ int nice_naming_var; /* yes, this is nice variable! */ 例自重しろ。variableは変数のことです。 また、適度に略して長くなりすぎないようにしましょう。 int the_long_long_long_long_variable; /* これはさすがにやりすぎですが */ int long_var; /* このくらいの長さが理想的 */ どういうものなのか、できるだけ伝わる名前をつけましょう。 int imihumei(...); /* 例が思いつかなかったよ */ int get_news(...); /* news を get する関数 */ さらにいうとすれば、シンプルな名前が付けられないような関数は、仕事を負わせすぎている可能性もあります。 int do_many_things(...); /* ダメ。仕事を分散させましょう。 */ int eat(...); /* 分割後 */ int sleep(...); int xxx(...); めでたしめでたし。
*基本文法 基本文法っていうか、ソースコードを書くときのルール?みたいな。 始めに読むべきところではないです。ある程度C言語を知ってから読むといいかも。 **改行 スペース タブ C言語において、改行やスペース、タブはソースコードを見やすくするためのものでしかありません。 文末は、改行ではなくセミコロン「;」が表現します。よって、下のままではコンパイラにしかられます。 printf("hoge\n") きちんとセミコロンをつけましょう。 printf("hoge\n"); 初心者のうちに多いミスとして、セミコロン忘れ、変数、関数名のスペルミスがあります。 慣れるまでこの三点には気をつけましょう。 また、以下のような改行、スペースの使い方は正しくありません。 prin t f("hoge \n "); C言語では、文字列中に改行を含めることは出来ません。変わりにエスケープシーケンスの\nを使いましょう。 さらに、以上のことは改行によってソースコードの意味が変わることはない、ということも意味します。 例えば以下の二つのソースコードはコンパイルすると同じ実行ファイルを出力します。 #include <stdio.h> int main(){ printf("YUKI.N> sleeping beauty\n"); return 0; } #include <stdio.h> int main(){printf("YUKI.N> sleeping beauty\n");return 0;} **コメント C言語ではプログラムの任意の場所に、コメントを書くことができます。 文法は以下のとおりです。 /* comment.... */ 「/*」と「*/」で囲まれた部分全ては、コメントとして扱われます(コンパイル結果に影響しません)。 自分の書いたソースコードを他の人が読む時に、理解の助けとなるようなコメントを書きましょう。 それは一ヵ月後の自分かもしれませんが… :-p **字下げ ソースコードは人が書くものであると同時に、人が読むものでもあります。 人が読みやすくするために、ある程度「書き方」というのが決まっています。 その一つが字下げ、インデントです。 プログラムの階層ごとにタブや任意個のスペースを入れることをいいます。 /* ここは一番外側 */ int main(){ /* ここは main の中 */ if(0){ /* ここは if の中 */ } /* ブレースは始まり(この場合は if)と同じところに */ } /* ブレースは始まり(この場合は main)と同じところに */ 複数人でソースコードを書くときは、共通のルールの上で書かないと混乱します。 恐らく多分メイビー、スペース四個が一番一般的です。特にこだわりがなければそうしましょう。 あまりにも関数の引数が多すぎるときなども、字下げすることがあります。 many_many_many_many_parameter_function(takusan, aruyo, motto, motto, aruyo, hoge, huga, hage, hige, piyo, poyo, payo, puyo); /* 長すぎる */ many_many_many_many_parameter_function(takusan, aruyo, motto, motto, aruyo, hoge, huga, hage, hige, piyo, poyo, payo, puyo); **名前 配列の添え字として使う変数名は「i」や「j」、二次元配列なら「x」「y」などを使うのが習慣です。 基本的に変数名、関数名にはローマ字は使わないようにしましょう。 int korehadamenarei; /* 自重しろ */ int koreha_mada_masi; /* 努力は認める */ int nice_naming_var; /* yes, this is nice variable! */ 例自重しろ。variableは変数のことです。 また、適度に略して長くなりすぎないようにしましょう。 int the_long_long_long_long_variable; /* これはさすがにやりすぎですが */ int long_var; /* このくらいの長さが理想的 */ どういうものなのか、できるだけ伝わる名前をつけましょう。 int imihumei(...); /* 例が思いつかなかったよ */ int get_news(...); /* news を get する関数 */ さらにいうとすれば、シンプルな名前が付けられないような関数は、仕事を負わせすぎている可能性もあります。 int do_many_things(...); /* ダメ。仕事を分散させましょう。 */ int eat(...); /* 分割後 */ int sleep(...); int xxx(...); /* 引数に同姓を指定してはいけません */ めでたしめでたし。

表示オプション

横に並べて表示:
変化行の前後のみ表示: