構造体につける変数名は最初を大文字にするのが一般的でしょうか?
それとも小文字にするのが普通でしょうか?

書籍やネットで調べてみると、
struct BookShelf {};
のようにJavaのクラス名のような付け方と
struct bookshelf{};
のように全て小文字の付け方をする人が多いようです。

そしてFILEという構造体が何故大文字なのかが謎です。いつもFileと書いてコンパイルエラーに。。