У меня есть пример кода, который генерирует следующее предупреждение (компилятор VS2008 с SP1):
предупреждение C4146: унарный оператор минус применяется к беззнаковому типу, результат все еще беззнаковый
Код:
void f(int n)
{
}
int main()
{
unsigned int n1 = 9;
f(-n1);
}
Но поскольку функция f
принимает свой параметр как int
, разве этот код не должен компилироваться без каких-либо предупреждений?