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. 配列と前処理命令 —— 素数ふるい、線形ふるいおよびコードデモ部分を参照してください