上海电力大学c语言评分标准,刚开始学c语言,请教学长怎么学?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

在底层系统中用的多。linux开源的资源也基本是用c写的,c需要掌握面向对象和指针的精髓,

UINT8 DiskAddDriver(LPDISKDRIVER lpDiskDriver, PDEVINFO pDev)

{

UINT8 Drive;

UINT8 i;

PDISKINFO pt;

if (lpDiskDriver == NULL || pDev == NULL) return DISK_PAR_INVALID;

if (lpDiskDriver(pDev, DISK_MOUNT, NULL, 0) == DISK_MOUNT_ERR) return DISK_DRIVER_ERR;

pt = pHead;

Drive = 'A';

while (pt != NULL){

Drive ++;

pt = pt->pNext;

}

lpDiskDriver(pDev, DISK_READ_SECTOR, (PUINT8)&MBRBuf, 0);

if (((MBRBuf.BootCode[0] == 0xEB) && (MBRBuf.BootCode[2] == 0x90)) || (MBRBuf.BootCode[0] == 0xE9)){

if ((pt = DiskInfoAlloc()) == NULL){

return DISK_NO_FREE_INFO;

}

pt->lpDiskDriver = lpDiskDriver;

pt->SecOffset = 0;

pt->pDev = pDev;

DiskInfoAdd(pt);

}else if (MBRBuf.BootCode[0] == 0x33 && MBRBuf.BootCode[1] == 0xC0 && MBRBuf.BootCode[2] == 0x81){

for (i = 0; i 

if (MBRBuf.PartTable[i].SystemID == PART_TYPE_WIN95_EXTEND || MBRBuf.PartTable[i].SystemID == PART_TYPE_EXTEND){

DiskGetExPartInfo(lpDiskDriver, pDev, MBRBuf.PartTable[i].RelSecIndex);

}else if (MBRBuf.PartTable[i].SystemID == PART_TYPE_NULL){

break;

}else{

if ((pt = DiskInfoAlloc()) == NULL){

break;

}

pt->lpDiskDriver = lpDiskDriver;

pt->SecOffset = MBRBuf.PartTable[i].RelSecIndex;

pt->pDev = pDev;

DiskInfoAdd(pt);

}

}

}else{

return DISK_BOOTCODE_ERR;

}

return Drive;

}

写出以上风格的程序就基本是精通了,但c语言只是实现的编程技能,还需要其它相关的知识才有�

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值