1.结构体类型定义
定义方式1:
Typedef struct LNode {
int data; // 数据域
struct LNode *next; // 指针域
} *LinkList;
定义方式2:
struct LNode {
int data; // 数据域
struct LNode *next; // 指针域
};
Typedef struct LNode *LinkList;
以上两个定义方式是等价的,是将 *LinkList 定 义为 struct LNode 类型,即 LinkList 被定义为一个类型名。这样就可以用 LinkList 来定义说明新的变量了,如:
LinkList L;
即将 L 定义为 struct LNode 类型的指针变量。
2.结构体类型变量定义
定义方式1:
struct LNode {
int data; // 数据域
struct LNode *next; // 指针域
}LnodeA;
定义方式2:
struct LNode {
int data; // 数据域
struct LNode *next; // 指针域
};
struct LNode LnodeA;
以上两个定义方式也是等价的,这样就将 LnodeA 定义为一个 struct LNode 类型的变量,即 LnodeA 为一个 struct LNode 类型的变量名。
结构体内标的定义方式
1.结构体,透明表区,DATA ELEMENT,DOMAIN
透明表是对一个物理表的逻辑描述,透明表里有许多字段,并且定义某些字段为 PRIMARY KEY,字段里又包含 DATA ELEMENT,用来描述语言属性和技术属性。DATA ELEMENT 中又包含 DOMAIN,它是定义数据类型和字段长度。
结构体一般是用来定义一个结构变量,有临时数据的储存,没有 PRIMARY KEY,结构体里包含 COMPONENT 而不是 FIELD
2.Internal table 中的属性分为三种 LINE TYPE ,KEY,TABLE KIND。
LINE TYPE 在 INTERNAL TABLE 里单独的一行叫 LINE TYPE,每一行的结构都一样。
KEY:相当于数据库里的主键。在排序的时候有用,UNIQUE 或 NON-UNIQUE。
TABLE KIND:分为 STANDARD,SORTED,HASHED。
三种类型的内表的定义
标准表:
DATA itab1 TYPE STANDARD TABLE OF scarr WITH NON-UNIQUE KEY carrid.
排序表:
DATA itab2 TYPE SORTED TABLE OF scarr WITH NON-UNIQUE KEY carrid.
哈希表:
DATA itab3 TYPE HASHED TABLE OF scarr WITH UNIQUE KEY carrid.
一般定义方法(标准表)
根据数据库表定义标准表
DATA itab4 TYPE TABLE OF scarr.
根据自建的结构变量定义标准表(最常用)
DATA: BEGIN OF wa,
carrid TYPE scarr-carrid,
carrnam