typedef
在计算机编程语言中用来为复杂的声明定义简单的别名,与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。
1
2
3
4
5
6
7
8
9
|
struct
tagNode
{
char
* pItem;
struct
tagNode* pNext;
};
typedef
struct
tagNode* pNode;
|
======================================================================
运算符->
->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.
======================================================================
结构体赋值
struct Student
{
int number;
char name[20];
}std0={100,"name0"};
void main()
{
struct Student std1={101,"name1"};
struct Student std2;
std2.number=102;
strcpy(std2.name,"name2");
printf("std0:%d\t%s\n",std0.number,std0.name);
printf("std1:%d\t%s\n",std1.number,std1.name);
printf("std2:%d\t%s\n",std2.number,std2.name);
}
======================================================================
1
|
typedef
int
size;
|
1
2
3
4
5
6
7
8
9
10
|
void
measure(size*psz);
size array[4];
size len=file.getlength();
std::vector<size>vs;
|
1
2
3
|
char
line[81];
char
text[81];
|
1
2
3
4
5
|
typedef
char
Line[81];
Line text,line;
getline(text);
|
1
2
|
typedef
char
* pstr;
intmystrcmp(pstrp1,pstrp2);
|
1
|
int
mystrcmp(
const
pstr p1,
const
pstr p3);
|
1
|
typedef
const
char
* pstr;
|
语言用法
1
2
3
4
5
6
7
8
|
typedef
struct
tagNode
{
char
* pItem;
pNode pNext;
}*pNode;
|
1
|
typedef
long
byte_4;
|
1
2
3
4
5
6
7
8
9
10
|
typedef
struct
tagMyStruct
{
int
iNum;
long
lLength;
}MyStruct;
|
1
2
3
4
5
6
7
8
9
10
|
struct
tagMyStruct
{
int
iNum;
long
lLength;
};
|
1
2
3
4
5
6
7
8
9
10
|
typedef
struct
tagNode
{
char
* pItem;
struct
tagNode* pNext;
}*pNode;
|
1
2
3
4
5
6
7
8
9
10
|
typedef
struct
tagNode* pNode;
struct
tagNode
{
char
* pItem;
pNode pNext;
};
|
1
2
3
4
5
6
7
8
9
|
struct
tagNode
{
char
* pItem;
struct
tagNode* pNext;
};
typedef
struct
tagNode* pNode;
|
1
2
3
|
typedef
char
* pStr;
#define pStr char*
|
1
2
3
4
5
6
7
|
typedef
char
* pStr1;
#define pStr2 char*
pStr1 s1,s2;
pStr2 s3,s4;
|
1
2
3
4
5
6
7
|
#definef(x)x*x
main()
{
inta=6,b=2,c;
c=f(a)/f(b);
printf
(
"%d\n"
,c);
}
|
1
|
#definef(x)((x)*(x))
|
1
2
3
4
5
6
|
typedef
char
*pStr;
char
string[4]=
"abc"
;
const
char
*p1=string;
const
pStrp2=string;
p1++;
p2++;
|