This function prototype is fraught with risk. There are too many things that could go subtly wrong without causing a crash. Worse if you have weak typing (AKA moderately aggressive type coercion).
Flags, indicators, meaningful values, digit strings treated as numbers... you can malform the call without warning.
This is why I value small classes.
int fahrenheit = celsius ;
SetTemperature(int x)
Integers are not appropriate here. They make no sense.
The most primitive type isn’t the safest or simplest.
Primitive obsession makes coding complicated and risky.
Or we can make less risky code.
What is lifetime cost to ensure that nobody uses the code incorrectly, and what it will cost each time someone does?
... Compared to typing a dozen more lines of code.
Sometimes spending a bit more time to increase safety saves time and money.