C++问题,求高手解决

来源:百度知道 编辑:UC知道 时间:2024/05/27 03:28:09
关于GetLocalTime函数的使用。。。我在VC6里调出的函数定义:

void GetLocalTime(
LPSYSTEMTIME lpSystemTime
);
而LPSYSTEMTIME的定义:
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;

我的问题是:1.LPSYSTEMTIME是 _SYSTEMTIME结构的一个变量怎么在GetLocalTime函数里是个类型?困扰我很久了。
2.typedef struct _SYSTEMTIME中_SYSTEMTIME的_可以省略吗?和SYSTEMTIME有区别吗?
3.网上查的用法是
SYSTEMTIMEs;
Getlocaltime(&s); //明明Getlocaltime参数是LPSYSTEMTIME类型的?
4.LPSYSTEMTIME中的P是不是指针的意思?
请大家帮帮我,真的很困惑的。。。
结构: struct XXX
{ XXXXX }变量,变量;
C++里是这样定义一个结构的啊。。。难道是因为前面多了一个typedef ? typedef有什么用呢?

问题1:LPSYSTEMTIME是结构体的别名,不是它的变量,所以可以在GetLocalTime函数里用来定义变量。
问题2:个人认为_SYSTEMTIME是可以省略的,因为该结构体还有三个别名,_SYSTEMTIME和SYSTEMTIME没啥区别,都是结构体名而已,唯一的区别就是他们差了一“_”
问题3:刚说了SYSTEMTIME和LPSYSTEMTIME都是结构体名,用哪个声明变量都是一样的。就像你有大名和小名,我喊哪个都是你一样。
问题4:P指的就是指针

1、结构体本身就属于类型,类也属于类型,只是有一些类型是编译器本身就存在的。叫内置类型!如int;
2、不可以省略,这是系统API!你别随便改!

3、SYSTEMTIME 类型和*LPSYSTEMTIME类型相同。则LPSYSTEMTIME类型就是SYSTEMTIME型指针咯!你看typedef(定义一个类型为另外一个名字)

4、看3就好了!