Как уже говорили другие, вам не нужно писать префикс struct
в c ++, так как компилятор может определить правильный тип только по имени.Но я предлагаю использовать reinterpret_cast в этой ситуации, поскольку приведение стиля c - это приведение большого молотка, которое приводит типы и константные спецификаторы за один раз.
struct socksddr_storage ss;
const struct socksddr_storage ss2;
struct sockaddr *sa;
sa = reinterpret_cast<sockaddr *>(&ss); // Works like the C Cast
sa = reinterpret_cast<sockaddr *>(&ss2); // Fails, because ss2 is a constant,
// but sa is a pointer to a no const memory location. The C cast will allow
// this assignment, but this can lead to runtime errors since the linker
// can place ss2 into read-only memory.