在 C++ 中,INLINECODE9df67460 关键字用于定义结构体,而 INLINECODE9f07101e 关键字则用于为现有数据类型(如 INLINECODE987d35aa、INLINECODEc3f2472c)或用户自定义类型(如 INLINECODEdbcacca7、INLINECODE90d9945f、union)创建别名(即一个新的名称),从而赋予它们更具可读性的名字。
- 在 C 语言中,程序员通常使用 INLINECODEc1aca695 的形式,这是为了避免每次声明变量时都要重复书写 INLINECODEb26819da 关键字。
- 而在 C++ 中,这并不是必须的。结构体定义后,它的名字本身就可以直接作为类型名使用。
C++ 中的 Struct(结构体)
struct关键字定义了一种用户自定义的数据类型,它允许我们将多个变量(以及函数)组合在同一个名称之下。- 在 C++ 中,一旦我们声明了一个结构体,就可以直接使用它的名字作为类型,无需借助
typedef。
下面是一个关于结构体 struct 的示例。
C++
#include
using namespace std;
// 定义一个名为 MyStruct 的结构体
struct MyStruct
{
int num;
void increase()
{
num += 5;
}
};
int main()
{
MyStruct obj;
obj.num = 5;
obj.increase();
cout << "Number is: " << obj.num << endl;
return 0;
}
Output
Number is: 10
C++ 中的 Typedef Struct(带别名的结构体)
下面是一个在结构体中使用 typedef 的示例。请注意,绝大多数情况下,我们在 C++ 中并不需要这样做。这里展示这个例子只是为了告诉大家,从语法上讲,这种写法是完全合法的。
C++
#include
using namespace std;
typedef struct MyStruct
{
int num;
void increase()
{
num += 5;
}
} MyStruct;
int main()
{
MyStruct obj;
obj.num = 5;
obj.increase();
cout << "Number is: " << obj.num << endl;
return 0;
}
Output
Number is: 10
C++ 中 Struct 与 Typedef Struct 的区别
- struct 定义了一种用户自定义的复合类型;而 typedef struct 在定义结构体的同时,还为它创建了一个别名。
- 使用 struct 时,我们可以直接通过结构体名字声明对象;而使用 typedef struct 后,我们可以直接使用别名来声明对象,无需书写
struct关键字(虽然在 C++ 中 struct 本身也不需要写关键字)。 - struct 将变量(以及函数)归组在同一个类型下;而 typedef struct 除此之外,还为该类型提供了一个方便的替代名称。
- struct 的名字本身就可以作为类型使用;而 typedef struct 则明确地为该类型提供了一个显式的别名。
- struct 是直接使用的;而在现代 C++ 中,typedef struct 的功能通常可以被
using关键字取代,后者的语法更加清晰,也是现代 C++ 推荐的类型别名定义方式。