fre*_*low 5 c c++ compatibility struct typedef
我知道两种可能的方法来定义和使用structs:
#1
struct person
{
char name[32];
int age;
};
struct person dmr = {"Dennis Ritchie", 70};
#2
typedef struct
{
char name[32];
int age;
} person;
person dmr = {"Dennis Ritchie", 70};
Run Code Online (Sandbox Code Playgroud)
第一种方式的有趣属性是类型和变量都可以具有相同的名称:
struct person person = {"Sam Persson", 50};
Run Code Online (Sandbox Code Playgroud)
这是C中的惯用语吗?它可以保证在C++中工作吗?或者我应该注意哪些角落?
请注意,我对纯C++答案不感兴趣(例如"使用std::string而不是char[32]").这是一个关于C/C++兼容性的问题.
struct person person = {"Sam Persson", 50};
Run Code Online (Sandbox Code Playgroud)
对类型和变量使用相同的标识符并不符合习惯。在 Unix 中,通常使用变量名称的缩写版本,例如:struct stat st, , ... ,文件描述符变量的典型名称也是struct timeval tv如此。fd
| 归档时间: |
|
| 查看次数: |
701 次 |
| 最近记录: |