deal with warnings when compile by gcc