• ベストアンサー

C言語の記述ミス防止

chie65535の回答

  • chie65535
  • ベストアンサー率43% (8508/19343)
回答No.3

>break忘れを防止する記述方法はないでしょうか? 「全case節に漏れなくbreak句が付く場合はswitch文を使わず、if else ifで書く」という方法しかありません。 switch文を使うのは「意図的にbreak句を付けずに、次のcase節に雪崩れ込む必要がある場合だけ」にしましょう。

EGA4545
質問者

お礼

ありがとうございます。

関連するQ&A

  • スタックポインタをC言語で記述する方法は?

     スタック・ポインタの設定はアセンブラで記述してリンクしていますが、C言語で記述する一般的な方法は有りますか。  ルネサスのHEWだと出来るようですが、コンパイラ依存性が有るようです。  コンパイラに依存しないか、たいていのコンパイラなら出来る方法は有りますか。  宜しくお願いします。  

  • 割り込みベクターをC言語で書きたい

     皆さん、有難う御座います。時々質問させて頂いています。  今回は、ベクターアドレスをC言語で書く方法について質問します。  ルネサスのH8マイコンを使っています。モニターを使うとRAM上に割り込みの仮想ベクターを作れます。  仮想ベクターには、割り込みのジャンプ先アドレスが書かれます。  現在アセンブラで書いているのですが、C言語で書く方法は無いでしょうか。  二つの方法で書きたいと思っています。  アセンブラで次の二つの方法に相当するC言語命令を知りたい。 (1)ORGとEQU命令を使った方法 (2)ムーブ(Z80ならロード)命令で関数のアドレスをメモリに書く方法  ルネサスにはHEWと言うソフトが有りますが、HEW特有の命令によらず、一般的なコンパイラが持っている機能で実現したい。  以上宜しくお願いします。

  • C言語ルール決め(規約)について

    組み込み系でソフト開発においてC言語のルール規約を作ろうと思っています。 13人でソフト開発を行っており、どうしても個人毎に違いがあります。 他人のソフトを見ても全然わかりません。 誰かのフォローをしたり、引継ぎを行うときに毎回困るのです。 それをなくすために、ルール化して個人差をなくそうと考えています。 ここで質問です。 市販の書籍を見ても、漠然としたことしか書いてなく参考にならないのが実態です。 具体的によそ様の会社ではどのようなルールで行われているのか、一番知りたいです。 マイコンメーカーのルネサスのセミナーに行っても、実際のルールのことまで教えてくれません。 と言うかルールまで関与しないんでしょう。 例えば、座談会など意見交換できる場がないのでしょうか? ご存知の方ご教授願います。

  • C#で記述されたマイクロソフトの製品について

    C#言語に興味を持っている。マイクロソフトはC#の使用を推奨しているようである。 Windowsの記述言語はC.C++、アセンブラであろう。 オフィスはBASICで記述されているだろう。 C#により、記述されているマイクロソフトの(開発言語以外の)製品はあるのか。 教えて下さい。

  • PICマイコンでLEDの点滅をC言語で記述法を教えてください

    PICマイコン(PIC16F84A)にLEDを1個接続し点滅だけのプログラムをC言語で記述を書きたいのですが、教えていただけないでしょうか? CCS社のコンパイラを用いた時の記述の書き方を教えていただけないでしょうか? 条件は、 ・電池を繋げるとLEDが点滅、スイッチ素子は用いません。 ・LEDは1秒間隔で点滅し、永遠に点滅 ・LEDは、PICマイコン(PIC16F84A)の9番ピン(RB3に該当)に接続 ・水晶発振子は、10MHzを使用。 ・コンパイラは、CCS社を使用 私が分かる範囲は下記なのですが、これから先の記述方法が分かりません。 #include <16f84a.h> #fuses HS, NOWDT, NOPROTECT #use delay(clock=10000000) #byte port_b=6 main() { この中身の記述方法が分かりません。 教えていただけないでしょうか? } よろしくお願いします。

  • PIC16F84AのデバイスでC言語を用いて音を出したい

    PIC16F84AデバイスでCCS社のCコンパイラーを用いて音を出したいのですが、C言語の記述が分かりません。 音は、圧電ブザーで、Bポートの1つを使います。 Aポートの1つにスイッチを取り付け、スイッチが入ったら、音を鳴らしたいのですが、C言語で音階が記述できるんでしょうか? 簡単で良いので、C言語で、音を鳴らす記述を教えていただけないでしょうか?

  • C言語のswitch case文で、scanfでキーボードから読み込ん

    C言語のswitch case文で、scanfでキーボードから読み込んだ1~12の値によって画面に季節を、3~5は"春"、6~8は"夏"・・・というふうに表示させるプログラムなのですが、if文を使わずにswitch caseで作るには case 3: case 4: case 5:puts("春"); break; ・ ・ ・ と1個1個記述するしかないのでしょうか? もし比較演算子と論理演算子を使って 3<= && <=5 こんな感じに1行にまとめることができるなら教えてください。

  • Windows上でC言語を勉強したい。

    私は現在専門学校でC言語の勉強をしています。 自宅のwindows上でもC言語を学習したいのですが、どうすればいいのかわかりません。 web上の”C言語開発環境~”ソフトをインストールしてみたものの、使い方が全く分からずに困っています。 学校ではfedora7を使って端末からC言語の記述とコンパイルをしています。windows上でも同様にC言語の学習ができないでしょうか?参考になるサイトなどありましたら教えていただけると助かります、よろしくお願いいたします。

  • 組み込み系C言語の学習法

    私は組み込みソフトを8年やってきました。 規模としては、白物家電をイメージしてもらうと良いです。 但し、電子レンジなど表示機能がない製品が近いかもしれません。 近いものでは、洗濯機や冷蔵庫といった感じでしょうか。 マイコンは、旧三菱の740ファミリのM38000系です。 ただソフト経験(アセンブラ)はあるものの、C言語の経験は皆無なのです。 ただし、if-else, switch-case, for, while, break, continue は充分理解できます。 何故かというと、旧三菱系のマイコンには構造化アセンブラと言って、 C言語もどきの記述ができるのです。上記文のみ特別に設けられていたのです。 それを使ってソフトを作っていたので上記分は理解できるのです。 しかし、ややこしいのがポインタや構造体や共有体や配列です。 同じことをアセンブラでもやっているはずなのです。 ポインタや構造体や共有体をアセンブラで書くとどうなるかが知りたいのです。 ここの部分が書いてある書籍がないのです。 例えば、ポインタや配列は、旧三菱系で言うとXレジスタやYレジスタを 使って行っていた作業と似てるのかなと推測できます。 同じ境遇の方で克服された方がいらっしゃいましたらアドバイスをお願いします。 また、アマゾンで下記の本を見つけました。 参考になるのでしょうか? よろしくお願いします。  ""組込み現場の「C」プログラミング基礎からわかる徹底入門""

  • C言語の例文

    お世話になります。 C言語を勉強しています。 以下の判定式を、短い行数のプログラムで表す例文を教えてください。 よろしくおねがいします。 int e; byte Move_data; switch(Move_data){ case 0xF0: e= 3; break; case 0xE0: e= 2; break; case 0xD0: e= 2; break; case 0xC0: e= 1; break; case 0xB0: e= 1; break; case 0xA0: e= 1; break; case 0x90: e= 0; break; case 0x80: e= 0; break; case 0x70: e= 0; break; case 0x60: e= -1; break; case 0x50: e= -1; break; case 0x40: e= -1; break; case 0x30: e= -2; break; case 0x20: e= -2; break; case 0x10: e= -3; break; }