Vim を使用してプログラムを書く#
- ファイルを保存して終了する:、ZZ
- Linux では、すべてがファイルです
- 実行可能なプログラム a.out は実際にはファイルであり、バイナリファイルです
- .cpp ファイルには C コードを書くことができますが、逆はできません(.c ファイルに C++ コードを書くことはできません)
- 注意:C11 規格では C++ と互換性のないいくつかのマクロがあります
C 言語のプログラミング規則#
- 国内の主流なコーディング規則:ali + google、baidu + google。Google C++ スタイルガイドを参照してください。
- PS:
- 2 つの関数の間にはスペースを空けてください:1 つの空行で十分です
- 一般的にはキャメルケース命名規則を使用します:MyName(大文字)、myName(小文字)
プログラムのデバッグ方法#
- 常識:プログラムはデフォルトで main () 関数をエントリーポイントとします
- 関数のカプセル化:関数を定義した後、関数を呼び出しましたか?
- コンパイルエラーが発生した場合:上から下にエラーを探し、デバッグします
- 予想と異なる場合:変数の値を printf で出力してみてください
海賊 OJ の使用とプログラミングの向上#
- まずHZOJ - 入門グループをやってみましょう
- 小さな練習👇
HZOJ-69:開学試験 2:日付の判定#
サンプル入力
1991 1 30
1991 1 32
サンプル出力
Yes
No
- アイデア
- 不正な入力を判断し、月の日数が適切かどうかを判断します(うるう年)
- 2 つのバージョン
- 複雑な if else ステートメント:ネストが深くなります
- 時間を節約するためのスペースの代わりに時間を節約する:月の日数の配列を作成します
- コード
-
- バージョン 1
- 配列の使用が重要です
- 三項演算子は条件分岐ではないため、分岐予測の問題はありません
- バージョン 2
- 可読性が低い
- 論理が複雑でバグが発生しやすい
- ブランチ予測の問題を考慮する - プリフェッチプロセスによる効率の低下
-
素数の問題についての考察#
- 暗号学と素数の関連性
- 《C 语言与提升》——5. 数组与预处理命令 —— 素数筛、线性筛およびコードデモを参照してください