[c++] What is the difference between static_cast<> and C style casting?