gpt4 book ai didi

c++ - 编写同时适用于 C 和 C++ 的结构代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:23 24 4
gpt4 key购买 nike

我知道定义和使用 struct 的两种可能方式:

#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};

第一种方式的有趣特性是类型和变量可以具有相同的名称:

struct person person = {"Sam Persson", 50};

这是 C 中的惯用语吗?它保证在 C++ 中工作吗?或者是否有我应该注意的极端情况?

请注意,我对纯 C++ 答案不感兴趣(例如“使用 std::string 而不是 char[32]”)。这是一个关于C/C++兼容性的问题。

最佳答案

struct 只有在 POD 时才在 C 和 C++ 之间兼容-s.

我倾向于编写如下代码:

struct person_st { char name[32]; int age; };
typedef struct person_st Person_t;

关于c++ - 编写同时适用于 C 和 C++ 的结构代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7937907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com