|
|
C言語のよくある間違い : Review-Cで検出するエラーの解説です。 Review-C に付属のサンプルソースをコンパイルして実際に実行して確認することができます。
エラー番号順/サンプルソース参照回数順 を選択変更可能です。参照回数 [エラー番号]エラータイトル となっています。102667 [e5776]char*文字列を==で比較しては駄目100173 [e29]ちゅうぶらりんelse97704 [e3]配列の添字が大きすぎる!97442 [e405]初期化されていない配列(2)93399 [e33]制御が来ません!92838 [e12]default の書き間違い!89548 [e21]初期値が不適切!88073 [e38]アドレスを半分削る?87266 [e16]== で無く = の間違い?86663 [e177]シングルコート中の文字列79880 [e4]シフトのしすぎ!79485 [e6]if 文の無駄!78389 [e100]mainはint型74639 [e175]意味がないコーディング73964 [e179]charは127円まで72397 [e49]ポインタなの?整数なの?71120 [e19]無駄な比較!71083 [e5]caseの外には制御が来ません69789 [e61]このファイル空ですよ!?68193 [e36]int か void か不明68099 [e9]ビットフィールドの設定!67661 [e10]配列の添字が負値!67160 [e1]C言語仕様で未定義!66793 [e82]BUGです。if(常時真)66374 [e93]使い道のない宣言66285 [e67]配列のサイズがゼロです65898 [e107]return?return 式?65830 [e169]フォーマット対応引数はポインタ65724 [e188]enum値がサイズオーバー65708 [e81]疑わしいエスケープ文字65229 [e201]関数呼出時に引数過多65118 [e187]2重定義です64985 [e231]printf呼出時、引数過多64863 [e163]if(a < b < c)はダメ64782 [e150]同名外部変数有り64102 [e83]BUGです。if(常時偽)64043 [e190]組込み関数型が競合63861 [e59]enumの型が異なる63794 [e182]%書き込み時注意63790 [e170]構造体転送の発生63608 [e442]memcpy 引数型違い63531 [e56]case -N:には絶対に来ない63312 [e305]printf呼出時引数不足63177 [e91]#行の後にある物は無視63148 [e57]return(&自動変数)はBUG63126 [e178]プリント文の意味不明?63056 [e109]構造体/共用体メンバ未定義62978 [e162]caseの値が過大62959 [e78]未定義です62883 [e77]括弧付ける『~=0』→『~={0}』62881 [e35]返却値がありません62672 [e154]関数の型が不明記述62667 [e50]代入時、左辺と右辺の型が違う62594 [e152]引数で互換性なし62542 [e171]条件文は常に真です62482 [e102]変更値に対するキャスト62481 [e41]符号付き拡張(1)!62459 [e95]外部とstaticの2重宣言62355 [e165]プリント文途中切れ62345 [e54]未使用ラベル62341 [e203]構造体/共用体記述誤り62305 [e168]共用体初期化要素過多62220 [e189]整数返却値のポインタ化62185 [e103]プロトタイプとの不一致62166 [e198]組込み関数の非関数宣言62116 [e53]引数の定義が異常62113 [e157]ビット演算と算術演算優先順62108 [e68]ユニオン中の重複メンバ62018 [e399]マクロ関数引数の数が合いません62007 [e71]メンバ宣言の終わりに『;』なし62001 [e73]『16進数値その物』互換性なし61921 [e42]符号付き拡張(2)!61817 [e306]printf呼出時引数過多61781 [e72]アラーム文字は互換性なし61753 [e106]列挙型タグの2重定義61651 [e113]関数外の空宣言は不要61582 [e66]引数と自動変数が同名です61581 [e304]%表記異常61553 [e84]このbitfield幅では比較は常に真です61553 [e234]引数の型宣言を省略61453 [e199]組込み関数の未宣言使用61429 [e166]16進の文字エスケープ過大61401 [e303]関数呼出時の引数の数異常61171 [e31]then節が空行です61105 [e85]ゼロ除算61035 [e459]ループ停止の Break?61009 [e241]非存在構造体タグのサイズ60935 [e445]関数 memcpy を引数 arg = NULLで呼び出し60882 [e512]共用体の二重定義60462 [e418]型違い返却値 BYTE関数宣言60043 [e313]型はint59751 [e476]8進数定数の誤記59653 [e437]型違い引数59631 [e458]double 型の危険な比較59449 [e504]無限ループ疑惑あり59407 [e415]カウンタはint型が適切59306 [e460]解放不要?59173 [e409]型違い初期化59123 [e485]返却値にゴミを返します59080 [e471]引数にNULLポインタが渡る可能性有り59056 [e421]論理演算子 || の右辺が(int)型です59025 [e454]0の時だけ成り立ちます58998 [e422]左辺が負値の可能性あり58969 [e411]型違い演算58928 [e493]添字はint型が適切58746 [e419]読み条件58648 [e488]条件式が int 型です58608 [e402]本文が空行です58220 [e27]スタック浪費46165 [e2]ゴミの値を使ってはダメ44083 [e30]せっかく作っても未使用!40657 [e23]char 型は遅いよ37392 [e161]char は遅い33211 [e261]ポインタ引数を更新しても、親関数には反映されない32734 [e262]memset( )の第1引数が NULLポインタ31951 [e13]break 文書き忘れ!31729 [e242]コーヒーを丼で飲む?30564 [e5786]sizeof(構造体ポインタ型)は変30303 [e277]回らないforループ30295 [e40]異常時処理は大丈夫?30237 [e263]memset( )の第3引数が 030103 [e258]if(変数|定数)は常に真30026 [e255]何度も呼ぶな29993 [e273]ファイルメトリクス29942 [e271]while(3)29937 [e275]セミコロンが多い29858 [e269]memcmpとmemcpyを間違えた29853 [e270] !strcpy( )29833 [e251]return後の更新は手遅れ29828 [e253]配列の添字が負値!29729 [e265]roopは誤字です29703 [e105]配列の初期化要素過多29699 [e256]0と&演算すると0になる29631 [e259]NULLにキャストをしない事29622 [e267]ビットの落としかた29450 [e268]変数のアドレスは NULL にならない29308 [e264]エルは壱と紛らわしい29293 [e252]配列の添字が大きすぎる!29230 [e266]!演算子は否定形のときに使うと良い26892 [e39]0bit は立ちません25455 [e8]常に成り立つ?24931 [e15]= と == の間違い?24913 [e86]初期化文字列が長すぎ24353 [e309]短すぎる外部変数24173 [e32]ヘッダファイルで static 宣言?22485 [e192]返却値有り無しの混合22363 [e5773]1バイトmemcpy21959 [e4836]ローカル変数の参照を返してもゴミが返るだけ21534 [e5780]sizeof(定数)21355 [e4117]戻り値書き忘れ20437 [e4108]1bitのintビットフィールド20338 [e5765]NULLチェックは先に20154 [e4938]mainの戻り値型省略(C++)20002 [e5000]無意味なextern19462 [e4951]mainはint宣言し、return(プログラム終了値)を記述するのが適切です19441 [e149]enum を使った switch 文19294 [e4064]何のための宣言?19293 [e5777]おかしいNULLチェック19197 [e5791]sizeof(プリミティブポインタ型)は変19174 [e88]マクロの再定義19119 [e4174]==では代入できません19118 [e5774]符号拡張19098 [e4128]到達しないループ19097 [e5783]sizeof('A')はいくつ?19058 [e4237]switch(定数)18990 [e5787]上に跳ぶgoto18936 [e279]変数 | 0に意味は無い18934 [e87]#undefに不正な引数18914 [e4187]if(x = 0)18899 [e120]"/*"の中に更に"/*"18850 [e4027]文字エスケープ過大18837 [e4236]if(定数)18829 [e5766]自分自身に代入しても無意味18815 [e5772]未使用ハンドラ引数18650 [e4069]入りきらない値18513 [e5057]一時オブジェクトのポインタを返すな18168 [e37]if(val & 2== 2)はBUG18124 [e64]"??=%d"に注意18121 [e5053]ポインタ型に大きな整数を入れています18104 [e4959]型に対して大きすぎるビットフィールド18081 [e4533]例外ハンドラは子クラスから書く18076 [e7]絶対に成り立たない?18033 [e5672]同じ定数値を比較している18011 [e5221]宣言を隠す宣言17997 [e5348]宣言を隠す宣言(2)17863 [e5763]sizeof(x[N])は1要素分のサイズ17785 [e34]if 文の中がカラッポ!17780 [e4767]ポインタが入りきらない型に入れています17746 [e5210]例外ハンドラの引数を隠している16968 [e22]static を付けて関数宣言!16585 [e511]構造体の二重定義16519 [e28]標準ヘッダを使おう16373 [e17]無意味な記述!16099 [e148]case 森の石松:を忘れていませんか?15483 [e160]ビットと関係演算優先順位15165 [e11]-1の比較!15124 [e467]構造体メンバ変数の初期化漏れ14526 [e260]変数宣言と同時に初期化すると楽13980 [e48]プロトタイプ宣言必要13648 [e26]未使用自動変数13537 [e497]size_t の宣言違い13421 [e98]疑わしいタグですstruct13338 [e25]引数を未使用!12820 [e183]出力なしプリント文12555 [e155]初期化に「{」必要12517 [e51]0x80000000以上正負不明式12488 [e55]case文が不適切12002 [e101]不適合ポインタ型の代入11944 [e151]関数の引数の型が不適合11701 [e999]リンク相当チェック対象外11616 [e14]条件文中に定数値有り!11555 [e65]構造体、typedef名組合せ異常11458 [e47]プロトタイプ宣言と異なる11039 [e18]負値との比較!10980 [e167]構造体初期化要素過多10870 [e20]&register不可10738 [e307]printfの%の使い方が間違?10670 [e46]システムマクロの値は?10636 [e4068]unsignedで負値を扱おうとしては駄目10554 [e60]struct/unionにメンバ名なし10364 [e45]bit field問題10298 [e158]算術演算^の周辺括弧必要10289 [e173]unsigned typeでも過大な整数10190 [e43]結合力は(3)?10113 [e257]定数をキャストする前に型を見直すこと10039 [e94]初期値の型があわない10033 [e172]計算式"+"の結果が過大9984 [e159]算術演算|の周辺括弧必要9978 [e156]初期化に「{」必要9898 [e44]結合力は(4)?9850 [e63]関数定義/宣言の統一9768 [e4186]符号無しの値と0を比較しています9584 [e58]x|y==zの優先順位?9566 [e164]16進表記と接尾子Uの使用9565 [e180]関数定義/宣言の統一要9558 [e202]整定数をunsignedで処理9557 [e404]初期化されていない配列(1)9534 [e195]期待する引数がこない9479 [e76]16進表記を検討9457 [e111]スカラの初期化要素過多9436 [e117]voidの演算子使用不可9392 [e97]関数の引数部でunion を定義9391 [e70]明示キャストかU接尾子要演算子9384 [e204]最適化時、変数異常9379 [e232]組込み関数暗黙の型宣言9374 [e80]関数呼出時、引数不足9333 [e79]引数の数が合いません9311 [e96]関数の引数部で構造体を定義9298 [e308]引数の型がまちまちです9236 [e74]マクロ引数条件コンパイル要9198 [e233]以前の外部宣言の型と違う9170 [e153]同名内部変数有り9145 [e200]型別の初期値9137 [e52]旧形式関数宣言は無駄9135 [e310]関数返却値は常時無視9131 [e403]構造体のメンバ変数、初期化ミス9030 [e69]ブロック外のタグ定義が隠蔽8853 [e501]三項演算子と enum の型8747 [e104]タグ定義スコープ外8650 [e312]返却値の無い関数の返却値使用8218 [e4430]一時オブジェクトの参照を返すな7755 [e452]符号無しの値と定数の比較(1)7699 [e494]NULLポインタへの代入7563 [e473]型違いループ内比較7460 [e453]符号無しの値と定数の比較(2)7454 [e143]記憶クラス指定子の記述場所7354 [e456]符号無しの値と定数の比較(3)7124 [e699]コンパイルエラー相当です6741 [e272]関数メトリクス6642 [e505]型違い代入6582 [e420]書き条件6474 [e5788]ポインタ引数のポインタを進めるか中身を増やすか6329 [e89]SJISコメント問題6244 [e413]論理結合演算子には boolean 値(2)6077 [e5782]memcpyの第三引数にsizeof(配列でも構造体でも無いただの整数型)5918 [e274]深すぎるネストは良くない5780 [e4185]実行されない初期化5652 [e5779]毎回初期化される大きな配列5650 [e5764]境界チェックは先に5535 [e5784]ビットフィールド範囲外の値との==,!=比較5522 [e276]回らないwhileループ5483 [e400]正常時のみ考慮された変数5473 [e412]論理結合演算子には boolean 値(1)5373 [e4175]配列の添字が大きすぎる!5296 [e5789]x == 1 && x == 2はあり得ない5292 [e472]領域が確保されていない引数使用5271 [e4284]参照型でNULLを扱おうとするな5255 [e5674]結合力は(4)?5249 [e5790]代入先より大きいビット数左ビットシフトしている5238 [e5762]ポインタ型の引数に代入しても無意味5235 [e4611]オーバーライドのし忘れ?5215 [e4514]符号無しの値と負値を比較しています5209 [e5785]セキュリティ上の問題があるファイル名生成関数の使用5197 [e5673]if(val & 2 == 2)はBUG5179 [e434]文字列に\0が入りません5173 [e4368]コンストラクタで初期化しないと意味が無いメンバ5155 [e4940]戻り値書き忘れ(2)5122 [e5691]caseの値は入りきりません(ビットフィールド)66 [e4460]引数が隠される |