long宣言してるからLを付ける意味無いんじゃ?
unsigned long total = 0L;
unsigned long total = 0;
これって違いがあるんですか?