C++铸造问题(结构)

gln*_*gln 0 c++ struct casting

在我的C++应用程序中,我有以下定义:

struct socksddr_storage ss;
struct sockaddr *sa;
Run Code Online (Sandbox Code Playgroud)

以下内容有何不同:

sa = (struct sockaddr *)&ss; 
Run Code Online (Sandbox Code Playgroud)

sa = (sockaddr *)&ss;
Run Code Online (Sandbox Code Playgroud)

???

有帮助吗?

tem*_*def 6

这两者没有区别.带有struct关键字的类型转换可以追溯到C的时代,其中结构的类型包括关键字"struct",这就是短语"typedef struct"变得流行的原因.C++在此上下文中消除了对此关键字的需求,但为了向后兼容性保留了语法.