私がC言語でエラーメッセージを吐き出すときにいつも使っている関数を紹介します。
エラーが起こったコードのファイル名、行番号と任意のメッセージを出力可能なので一回作っておくと結構便利です。さらにエラーメッセージに決まりがある場合はこの関数を自分用にカスタマイズすれば、もっと便利な関数になります。
使用例を含めたソースコードを以下に記しておきますので、エラー出力をfprintfなどのみで吐き出していた人は是非コピペして活用して下さい。
Sample Source Code
Result
エラーが起こったコードのファイル名、行番号と任意のメッセージを出力可能なので一回作っておくと結構便利です。さらにエラーメッセージに決まりがある場合はこの関数を自分用にカスタマイズすれば、もっと便利な関数になります。
使用例を含めたソースコードを以下に記しておきますので、エラー出力をfprintfなどのみで吐き出していた人は是非コピペして活用して下さい。
Sample Source Code
#include <stdio.h>
#include <stdarg.h>
inline void MyError(char *file, int line, char *fmt, ...){
va_list ap;
va_start(ap, fmt);
fprintf(stderr, "%s: %d ", file, line);
vfprintf(stderr, fmt, ap);
va_end(ap);
}
#define MYERROR(fmt, ...) MyError(__FILE__, __LINE__, fmt, __VA_ARGS__)
void main(){
int code=-1;
MYERROR("error code is %d\n", code);
}
Result
main.cpp: 15 error code is -1