-2
tool.c
ヘッダファイルに同じ名前のマクロや関数
#include <stdlib.h>
#include "tool.h"
void safeFree(void** pp) {
if (pp != NULL & *pp != NULL) {
free(*pp);
*pp = NULL;
}
}
tool.h
#ifndef tool_h
#define tool_h
void safeFree(void** pp);
#define safeFree(p) safeFree((void**)&(p))
#endif /* tool_h */
私はmain.c
でtool.h
をインポートした後、マクロを使用したいが、プログラムはコンパイルすることはできません。同じ名前のマクロと関数を定義する方法はありますか?
マクロ置換の仕組みを考え、実際に何を望んでいるのかを考え直してください。 – Olaf
"マクロ"とは何ですか?これは、プリプロセッサに対して、 'safeFree'のすべての出現箇所を指定された置換テキストに置き換えるコマンドです。あなたはそれをどのように期待していますか? –
これは機能しません。マクロ名を大文字にしてみませんか?またはよりよく見えるものさえ、直接関数を呼び出す – Jack