Есть ли способ, которым компилятор предупреждает меня, если я смешиваю два типа type1 (unsigned char) и type2 (unsigned long)?
Да, если вы дадите -Wconversion
на g cc или лязг, или /W3
на MSV C, они напечатают предупреждение для вашего примера.
(Они будут предупреждать вас, только если есть потенциальное изменение значения. Итак, преобразование unsigned char
в unsigned long
не генерирует предупреждения, поскольку это преобразование всегда сохраняет значение)