以下のように、構造体自体は実装ファイルで定義し、そのポインタのみをヘッダでtypedefすることで
構造体のメンバを隠匿する、という方法を見たのですが、これはANSI Cで認められている方法でしょうか?
手元の書籍等見ても記述がなく、ネットで検索しても分かりませんでした。

// MyData.h
typedef const struct PrivateMyData*MyDataRef;
// MyData.c
struct PrivateMyData {
char a;
char b;
};