typedef struct Point2d
{
double x;
double y;
}POINT2D
而C++中则可以这样子用:
struct Point2d
{
double x;
double y;
}
请问C采用typedef的方式的原因是?
17 个解决方案
#1
C里面也可以这么写
但定义变量的时候必须加上struct
有typedef的话直接POINT2D a;就行了
struct Point2d
{
double x;
double y;
}
但定义变量的时候必须加上struct
struct Point2d a;
有typedef的话直接POINT2D a;就行了
#2
------------------------------------------------------------------------
对于struct Point2d a;
不能直接使用Point2d的原因是?(C语言这样的设计的目的是?)
#3
typedef 只是为了给类型名字struct XX起一个别名 比较方便使用而已
不是必须加上去的
不是必须加上去的
#4
语法要求而已 也许是为了让人一眼就看出 这个变量是某个结构体类型的变量
#5
typdef struct tagXXX
{
}XXX;
//tagXXX是一个tag, XXX是一类型
//在C中, 使用tag 必须加上 类型关键字struct
//在C++中,tag同时也是类型,这是为了使用方便。算是一个改进。
#6
为啥这么规定我就不知道了。
#7
typedef struct Point2d
{
double x;
double y;
}POINT2D;
上面这代码应该有分号的吧
#8
+1
#9
typedef 仅仅是为了另取一个名,使用方便.
#10
++
#11
目测LZ的代码里面,struct最后漏了分号吧……
#12
原因是K&R觉得加上struct比不加要爽得多,不是开玩笑。
#13
还能这样!
#14
在C++中struct关键词是可以省略的,所以不需要typedef
#15
不用带分号??
C++中的结构体也可以定义方法,并且结构的默认访问权限和继承权限都是public,而类的默认访问权限和继承权限都是private
C++中的结构体也可以定义方法,并且结构的默认访问权限和继承权限都是public,而类的默认访问权限和继承权限都是private
#16
对这个问题,c和c++的处理都是一样的
#17
#1
C里面也可以这么写
但定义变量的时候必须加上struct
有typedef的话直接POINT2D a;就行了
struct Point2d
{
double x;
double y;
}
但定义变量的时候必须加上struct
struct Point2d a;
有typedef的话直接POINT2D a;就行了
#2
------------------------------------------------------------------------
对于struct Point2d a;
不能直接使用Point2d的原因是?(C语言这样的设计的目的是?)
#3
typedef 只是为了给类型名字struct XX起一个别名 比较方便使用而已
不是必须加上去的
不是必须加上去的
#4
语法要求而已 也许是为了让人一眼就看出 这个变量是某个结构体类型的变量
#5
typdef struct tagXXX
{
}XXX;
//tagXXX是一个tag, XXX是一类型
//在C中, 使用tag 必须加上 类型关键字struct
//在C++中,tag同时也是类型,这是为了使用方便。算是一个改进。
#6
为啥这么规定我就不知道了。
#7
typedef struct Point2d
{
double x;
double y;
}POINT2D;
上面这代码应该有分号的吧
#8
+1
#9
typedef 仅仅是为了另取一个名,使用方便.
#10
++
#11
目测LZ的代码里面,struct最后漏了分号吧……
#12
原因是K&R觉得加上struct比不加要爽得多,不是开玩笑。
#13
还能这样!
#14
在C++中struct关键词是可以省略的,所以不需要typedef
#15
不用带分号??
C++中的结构体也可以定义方法,并且结构的默认访问权限和继承权限都是public,而类的默认访问权限和继承权限都是private
C++中的结构体也可以定义方法,并且结构的默认访问权限和继承权限都是public,而类的默认访问权限和继承权限都是private
#16
对这个问题,c和c++的处理都是一样的