以下函数将结构写入文件。将结构和类写入磁盘
#define PAGESIZE sizeof(BTPAGE)
#define HEADERSIZE 2L
int btwrite(short rrn, BTPAGE *page_ptr)
{
long addr;
addr = (long) rrn * (long) PAGESIZE + HEADERSIZE;
lseek(btfd, addr, 0);
return (write(btfd, page_ptr, PAGESIZE));
}
以下是结构。
typedef struct {
short keycount; /* number of keys in page */
int key[MAXKEYS]; /* the actual keys */
int value[MAXKEYS]; /* the actual values */
short child[MAXKEYS+1]; /* ptrs to rrns of descendants */
} BTPAGE;
如果我将结构更改为类,会发生什么情况会发生什么?
如果我添加了类函数,它在磁盘上占用的大小会增加吗?
关于严格别名,允许将任何POD类型的对象视为字节数组。任何类型的对象都可以通过char *来访问,并且将组成POD类型对象的字节复制到一个char数组中,然后将这些字节复制回相同POD类型的对象中。 (当然,关于不可移植性的观点仍然有效)。 – 2010-05-22 20:12:59