C与C++的struct使用对比

 

 

typedef struct {

int data;

int text;

} S1;

//这种方法可以在c或者c++中使用

 

 struct S2 
 {
    int data;
    int text;
 };

//C++中上面的代码类似于类,可以用 S2 s再定义一个变量;C语言定义变量需要用sruct S2 s。

 

struct {

int data;

int text;

} S3;

//这种方法并没有定义一个结构,而是定义了一个S3的结构变量。

 

struct S4 {

S4* ptr;

};

// 这种写法只能在C++中使用,S4类似一个类

 

typedef struct tagS5{

struct tagS5 * ptr;

} S5;

//如果在C中,可以这样使用

 

typedef struct {

S6* ptr;

} S6;

// 这是一种在C和C++中都是错误的定义

 

 

typedef struct Student
{
int a;
}Stu;

typedef struct
{
int a;
}Stu;

struct Stu
{
int a;
};

//三种C++里都可以使用Stu stu1定义变量。

//C中可以使用前两种Stu stu1定义变量,最后一种需要struct Stu stu1定义变量。

 

c++中允许在struct当中定义函数,类似于类,不过,struct中定义的函数和变量都是默认为public,但class中的默认为private。

C中struct只能用函数指针成员,不能有函数的代码。

 

参考:

https://blog.csdn.net/m0_37973607/article/details/78900184

https://blog.csdn.net/ucasliyang/article/details/52691619/

https://blog.csdn.net/alane1986/article/details/6902285

你可能感兴趣的:(编程)