在AVRX中出现难以理解的typedef语句【恢复】
在AVRX里面的avrx.h文件中出现以下代码:typedef struct ProcessID
{
struct ProcessID *next;
unsigned char flags, priority;
void *ContextPointer;
#ifdef SINGLESTEPSUPPORT
unsigned char *bp1;
unsigned char *bp2;
#endif
}
* pProcessID, ProcessID;
typedef pProcessID Mutex, *pMutex; /* A mutex is basically a pointer to a process */
上面的Mutex, *pMutex分别是什么?
Mutex是不是pProcessID类型指针?
pMutex是不是pProcessID类型指针的指针?
或者Mutex就是与pProcessID,相当与#define pProcessID Mutex
typedef pProcessID Mutex, *pMutex; 他们之间多了一个','就令我难以理解了。 你c语言没学好.还是复习一下c的高级编程和资料吧.
如果你看过VC的类定义就知道了.
结构体可以有多个名字.
typedef pProcessID Mutex, *pMutex;
Mutex是结构ProcessID的指针.
pMutex是ProcessID的指针的指针.
举个例子.
typedef unsigned char* pu8;
pu8 p, *pp;
这个展开后就是
unsigned char *p, **pp;
结构体和这个的道理是一样的.
你复习一下typedef吧.这个确实让人很晕的.书上介绍的也不多.
它和define是不一样的. 谢谢楼上的解答,我已经明白了。typedef这个关键词在普通C语言书本里面真的很难令人深入了解。只要通过调试程序才能更好弄明白。
页:
[1]