Whats bad about c style casts?
There's nothing really bad about them. However C++ casts are more restrictive and tend to be "safer". For example a C style cast can be either a static_cast or a reinterpret_cast and so on.
Using a c style cast you are asking your compiler to do whatever it can to actually perform the cast, not only usually safe static_casts
Bjarne states (http://www.stroustrup.com/bs_faq2.html#static-cast)
A secondary reason for introducing the new-style cast was that C-style casts are very hard to spot in a program. For example, you can't conveniently search for casts using an ordinary editor or word processor. This near-invisibility of C-style casts is especially unfortunate because they are so potentially damaging. An ugly operation should have an ugly syntactic form.That observation was part of the reason for choosing the syntax for the new-style casts. A further reason was for the new-style casts to match the template notation, so that programmers can write their own casts, especially run-time checked casts.
Maybe, because static_cast is so ugly and so relatively hard to type, you're more likely to think twice before using one? That would be good, because casts really are mostly avoidable in modern C++.
https://en.cppreference.com/w/cpp/language/explicit_cast shows what is really performed by the compiler when you're C- casting in C++