• 締切済み

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

omi3の回答

  • omi3
  • ベストアンサー率20% (72/359)
回答No.1

組織を移動したとき、方言を矯正させられますが、 その対処方法はお考えですか?

sky9999
質問者

補足

移動の意味を教えてください。 人の異動のことですか?

関連するQ&A

  • C言語の不等号の計算

    三つの整数の変数a,b,cを用意して、プログラムの各変数に任意の値を代入する 例:a=9,b=31,c=25 このプログラムを実行して 「a=9,b=31,c=25です.よって b>c>a です.」 と表示するプログラムを組みなさい とゆう課題が出されたのですが switch文を使ってプログラムを組んで課題は終わったのですが・・・ switch文以外方法でこのプログラムが組めるのか プログラムの例を教えてください。 あとプログラムを組むときにはシンプルで行数の少ないプログラムのほうがいいのですか? 教えてくださいお願いします。

  • C言語のポインタの問題です。 解答お願いします。

    関数main()の3行目にある代入文 p = func1(q); で変数pに代入される値を求めなさい。 double func1 (double *p){ double s; for( s=0 : *p=-1: p++){ s += *p; } return(s); } int main(){ double p,q[]={-9,-7,-5,-3,-1} p=func1(q); }

  • [雑談]コーディング規約への思い

    今までに皆さんが体験されたことのある記憶に残るコーディング規約を教えていただきたいです。 これはお勧めとか、こんな酷い規約があった、自分専用ルール等、否定は無しで軽い気持ちで教えていただきたいです。 私の記憶に残る規約は下記があります。 [意外と良いかもと思ったもの] ・一文字のループカウンタの使用の禁止 少しでも検索を楽にしましょうと理由でした。 ×:for(i=0; i<10; i++){ ○:for(ii=0; ii<10; ii++){ [勘弁して欲しかったもの] ・if(2==ii)のように条件文を通常とは逆に書く。 ==の比較をタイプミスで=とした時にコンパイルが通らなくするためにらしいです。慣れるまで相当時間がかかりました。 ・3項演算子の使用禁止 読めなくて、理解もしなくてその前後のコードを修正する人が居て、使用禁止になったようです。。。 [自分専用規約] ・自分にごめんなさいと言うまで動的なメモリ確保はしない。 リーク対策です。動的にメモリを確保しないと実装できない場合や無駄にメモリを使用しすぎる場合にだけ、自分にごめんなさいをしました。 泣く泣く動的にとる場合はmallocではなくcallocを必ず使うようにしてました。 ・極力関数化 if文やswitch文が長くなる場合は、それを条件判断関数としてわざわざ関数を作る努力をします。 普通の処理も一連の流れなら必ず関数化します。 コードの可視性が上がりましたし、デバッグが楽になりました。 (ある関数をデバッグする場合、大半が関数化しているので戻り値だけチェックすればいいので) でも、関数1から関数2に飛んで、さらにその関数2から関数3に飛ぶ等全ての関数を追えば関数1に戻ってきた時に関数1の内容を忘れるような深すぎるのは禁止にしてました。 また関数名も相当こだわってました。 実はコメントを和英併記してくれと言われた時にコメント量を少なくする為にやってたのが癖になったのは内緒です。 ・無駄コメントの削除とconstの推奨 × int result = 0; result=NanikanoKansuu(); //NankanoKansuuが正常に処理したら if(result==0){ ○ int result = 0; const int normalProcess = 0; result=NanikanoKansuu(); if(result==normalProcess ){ ×のコメントを書くのはどうも抵抗がありました。戻り値なんてメンテなどでソースを追う際に読めばわかるやん!って思ってしまって。。。 それにアプリケーションの歴史が長く、メンテに次ぐメンテでコメントが良く間違ってるソースに当たり、コメントをあまり信用しなくなりました。 [微妙だと思った規約] ・プリフィックスの使用 仕様変更に伴いデータ型を変更する際に絶対に変数名の置換を忘れる!と確信できるメンバーがいる時に思いました。 考えればどんどん出てきそうですが、これくらいにしておきます。 見直すとレベルの低い発想が多いですね。ちょっと恥ずかしいです。

  • C言語の演習問題(C言語)について質問です。

    以下のプログラムは数字と演算子を配列に入れているプログラムです。 このプログラムを式を入れて四則演算のみで計算させるプログラムを作成してるのですがご指導お願いできますか? 例:8/3*3enterkey 答え:8 変数の型は変更しないで行うとの指示のことなので、変数は増やしても構いませんが、変えないでお願いします。 http://codepad.org/Iks8CtjT

  • C言語 extern について

    どうもこんにちは C言語でプログラムを作っています。 複数のファイルから1つのプログラムを作っていますが、あるファイルで実装した関数を別のファイルから使用する際、単にプロトタイプ宣言を行うだけでなく、extern が必要なのでしょうか? 今までは extern を使用せず、以下のように書いてました。 // main.c ファイル int func_sub(); int func_main() { return func_sub() * 2; } // sub.c ファイル int func_sub() { return 10; } これは extern を使用して、このように書かないとだめなのでしょうか? // main.c ファイル extern int func_sub(); // このexternは必要? int func_main() { return func_sub() * 2; } // sub.c ファイル int func_sub() { return 10; } 大域変数を他のファイルでも使用する場合はexternが必要ですが、関数に関してもexternを使用しなければならないのでしょうか?

  • C言語の基本的な質問ですが、関数へのポインタの宣言

    関数へのポインタの質問です。 下のように、関数へのポインタを使ったプログラムを書きました。 (関数へのポインタを理解するためのものなので、実用的な意味はありません。(*^_^*) また、このプログラムはコンパイルもリンクも実行も問題なく出来ます。) #include <stdio.h> int add_func(int,int); (*func_p0) (int,int); int main(void) { int (*func_p1) (int,int); int (*func_p2) ( ); int hoge0,hoge1,hoge2; func_p0=add_func; hoge0=func_p0(3,5); printf("0 : 3+5は%d\n",hoge0); func_p1=add_func; hoge1=func_p1(3,5); printf("1 : 3+5は%d\n",hoge1); func_p2=add_func; hoge2=func_p2(3,5); printf("2 : 3+5は%d\n",hoge2); return(0); } int add_func(int x, int y) { return(x+y); } func_p0のように戻り値の型を書かない場合と、func_p1やfunc_p2のように戻り値の型を書くのとでは何が違うのでしょうか。 func_p0は外部変数ですが、自動変数にする(main関数の中で同様に宣言。)とコンパイルエラーになります。 それはなぜですか。 func_p1のように引数の型が書いてあるのと、func_p2のように引数の型が書いていないのでは何が違うのでしょうか。 int (*func_p2) ( );というのは、int (*func_p2) (void);とは違うんですよね?

  • 今風(?)のコーディング規約が知りたい

    C++ は初心者です。他の言語は結構長くやっております。C は多少経験があります。(が、知識が 10 年くらい前のものです) 趣味で C++ を始めたのですが、仕事や大きなコミュニティ内で使ったことがないために、今現在主流のコーディング規約というかお行儀の良いスタイルの判別が難しいです。ヘッダファイルや Google Codesearch 等で片っ端から色々なソースを見ているのですが結構バラバラなんですよね・・・ 他の言語の経験があるので、switch の最後には何もなくとも default を明確につけとけ みたいなことの有用性はわかるのですが ではなくて、細かいですけど if (hoge) { } なのか if (hoge) { } なのか、とか (自分は下の方が好き) int ←ここで改行する?(自分は改行する) hogeHoge() { ・・・ とか。 多分僕の個人的な好みは大昔にやった C (K&R スタイル?) や長く仕事で使っている Perl の影響が強い気がするので、C++ 的にはどうなのかなと。 変数名や関数名は GNU スタイルなのか キャメルスタイルなのか、キャメルスタイルだったら大文字から始めるのか、関数名だけ大文字から始める人もいれば、関数名も小文字からの人もいるし、enum の定数は全部大文字が普通?とか(きりないですorz)・・・ ハンガリアンはもう推奨されてないというのは理解してます。その理由もなんとなく。でもハンドルは hHoge にするのが普通みたいですし、bool型なら is~ とか can~ とか。人によってはグローバル変数にもプレフィックスつけるようですね。他にもそういうこれはプレフィックスつけるのが普通!ってのがあったら知りたいです。僕自身はめっちゃ長くなっても意味が正確にわかる変数名をつけとけ派なので、プレフィックスにはあまり必要性を感じないです。(英文みたいな変数名とか良くやる) でも、 C++ 長くやると多分考え方が変わるかなあと思うので。 とりあえず以下を読んでますが、それほど間違った選択はしていないでしょうか? http://sec.ipa.go.jp/download/dl.php?filename=report/200606/CMGuide_V1-0.pdf http://www.possibility.com/Cpp/CppCodingStandard.html それはもう古い、今はこういう感じが普通、というのがあったら教えていただけると幸いです。(英語でも構いません) 個人で趣味レベルでやるなら、その程度は好きにしてかまわんでしょう、という意見でも OK です。好きにするんでも一貫したいので、どうせなら良いものを参考にしておきたいとは思ってます。(目的のモノを動かすのに数時間もかからなかったのに、そのコードをお行儀よく書き直そうとして数日も定まらずに何度も書き直したり・・・な状態なので。)

  • C言語における定数の使用方法

    こんにちは。 今日質問したいのは、タイトルにありますように、C言語における「定数」の使い方についてです。 私は現在、Visual C++を用いてC言語のプログラミングを勉強しているのですが、条件文(if文)に定数を用いてコーディングを行おうとしても、どうしてもエラー表示が出て、うまくコンパイルすることができません。 具体的には、 if(No>=1 && No<=10){ //具体的な処理部分 } というif文を、予めヘッダファイル内にて定義した定数 #define start 1; #define stop 10; を用いて次のように、 if(No>=start && No<=stop){ //具体的な処理部分 } コーディングしたいと考えています。 しかし、これをコンパイルするとエラーが発生してしまいどうにもうまくいきません。 また、定数ではなく数字で記述するとうまく回ります。 別のところで定数を、 wk = start; のように代入で使用しているのですが、そこではなにも問題がありません。 いったい何が間違っているのか、どのようにすればうまくいくのかを教えていただきたいと考え、書き込ませていただきました。 皆様、どうぞよろしくお願いします。

  • C言語 動的確保とポインタ参照について

    以下のようなプログラムについて質問させて頂きます. main文で宣言されているaに配列を動的確保したいのですが,funcの関数内でaにアクセスする方法が分かりません.*(a[i])かな,とは思ったのですが上手く動作しませんでした. func実行後のmain文からはaの要素にアクセス出来るので,確保自体は成功していると思うのですが,如何でしょうか・・・? 宜しくお願いします. void func(int **a) {  *a = new int[32]; for(int cnt=0; cnt<32; cnt++) { /* aの配列の要素に値を代入したい(a[i] = i のように) */ } } int main(void) { int *a = NULL; func(&a); }

  • C言語で電卓を作成する。修正お願いします。

    以下のプログラムは電卓のプログラムです。 http://codepad.org/n47BkpXa このプログラムの変数の宣言はあえてint型で行っています。 コレを変えずに上手く計算結果が出せるようにしたいのですが、どこを修正すれ良いですか? ご指導お願いします。 ・問題点 例:10/4*4などの最初に割り算が入ると計算結果がおかしくなってしまいます。 10/4*4=8 int型なので小数点が切り捨てられて結果が8になってしまいます。 コレをint型を使用して10になるようにしたいのですがご指導お願いします。 多分イメージではif文で(op=/)&&(op+1=*)が出たら掛け算を始めにするとかだと思います。