可能な限りすべての警告を提供するよう、常にコンパイラに依頼する必要があります。これは、オプションをコンパイラにgcc
渡すことを意味します。-Wall -Wextra
gcc
これを行った場合、コンパイラは (警告またはエラー メッセージを発行することによって) 多くの間違いを検出したことになります。
#include <stdio.h>
ディレクティブがありません
- 識別子のケースは重要では
FILE* logfile;
ないと宣言する必要があります。File *logfile;
- フォーマット指定子が望むように ではないため、への呼び出し
printf
は間違っています。これは (抽象データ構造への) ポインターであるため、必要な場合は を使用します。-edハンドルについては、そのアドレスからはあまりわからないことに注意してください(重要なのは、結果がis であるかどうかだけです)。logfile
int
%d
printf
%p
fopen
FILE*
fopen
NULL
一般的なアドバイスは、コンパイラから警告が出なくなるまでソース コードを改善することです。
デバッガー ( などgdb
) の使用方法も学習する必要があります。次に、デバッグ情報を使用してコンパイルします。gcc -Wall -Wextra -g yoursource.c -o yourprog
Linux システム (gcc
およびgdb
が非常に一般的なツール) を使用している場合はvalgrind
、strace
および ltrace
ユーティリティが役立つことがよくあります。