Is there any better way to reverse an integer than this?
Well, in programming something like "better way" isn't well defined. In other words it can mean a number of things. It can be better performance, better memory usage, etc.
However, the most important thing is that the code is bug free.
Your code isn't bug free in all cases.
Consider an obscure system where INT_MAX is 41 and then call your function with the value 34.
It will fail.
The problem is that your overflow check ignores the x%10
part which is added after the multiplication by 10. In other words - INT_MAX could have a value where out*10
won't overflow but once you add x%10
it will overflow.