”ヘッダーファイルを直接的にインクルードしてはいけない”
と書いてあるページを見たんですがこれは何のためでしょうか?

// define.h
typedef int* IntPtr;

// test.h
void Test() { IntPtr p; }

// main.c
#include "define.h" // test.hではなくこっちでinclude
#include "test.h"
Test();