FAQ

FAQ

C 言語

  • Q: assert(exp); ってなんですか?

    • Ans: exp が常にtrue になっていることを確認するための文です。例えば、stack の段数が常に 0 以上であることを確認したければ、assert(stack >= 0); とか書いておけばよいわけです。加えて、プログラムが完成して、assert チェックが不要になった場合は、NDEBUG というマクロ変数を定義すれば、チェックは行われないようになります。
  • Q: if(DEBUG) ...; ってなんですか?

    • Ans: デバッグ時だけ実行したい処理(よくあるのはデバッグプリント)を記述する方法です。鎌田がよくやるのは、デバッグ中は #define DEBUG 1 としておき、デバッグが終わったら #define DEBUG 0 に変更すれば、プログラムをほとんど書き換えずに、デバッグ中だけおこないたい処理を記述できます。デバッグのエラーレベルを設けて、if(DEBUG>1) ..レベル2以上の処理..; みたいな使い方も可能です。

VS Code

コード管理 (Git)

  • Q: git pull がうまくいかない
    • Ans: 鎌田の更新と、皆さんのファイル更新が競合したときに起こります。ただ、普段は起きないようにしているはずなんで、なぜ起こったのか、本当は確認したいところ。
    • 対処法:git のメッセージを確認して、競合が起きているファイルを見ましょう。その上で、皆さんの変更が要らないもの(なぜか入出力データを書き換えちゃったとか)なら、VS code の「コード管理部」で、当該ファイルの「更新を破棄」を選んでください。皆さんが意図してファイルを更新していた場合は、競合を解決しなくてはいけません。git に詳しくない場合は、とりあえず当該ファイルのコピーを確保してから「更新を破棄」して、ファイルの中身を見比べてください。

Read more