gpt4 book ai didi

c++ - 对这段代码中 struct 的工作原理感到困惑

转载 作者:行者123 更新时间:2023-11-30 18:55:04 27 4
gpt4 key购买 nike

我正在查看一段代码here我要使用的:

#include <sys/stat.h>

struct stat sb;

if (stat(pathname, &sb) == 0 && S_ISDIR(sb.st_mode))
{
...it is a directory...
}

我想如果我要使用它,我可能应该了解它的作用。我的问题是关于这条线

struct stat sb;

这是什么意思?我已经知道 struct 的声明方式如下

struct node { int val; node * next; }

所以我很困惑为什么结构声明后有 2 个标记。

最佳答案

在 C 中,结构体不会自动成为类型名,因此您必须使用 struct foo 来引用结构体名称。 。同样,您需要使用 enum barunion baz 。人们经常使用typedef避免输入 struct声明实例时。

在 C++ 中,该关键字是可选的,因为结构、枚举和 union (加上类)都是类型,但您仍然可以编写 class std::string s = "abc"; 。关于stat ,同时存在具有该名称的结构体和函数,为了消除两者之间的歧义,您需要编写 struct stat当提到结构时。

关于c++ - 对这段代码中 struct 的工作原理感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28677615/

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