globalfifo驱动测试中碰到的问题
时间:2010-04-28 来源:likefreebird
为了好好理解globalfifo这个驱动程序,自己写了两个个简单的测试程序,一个循环的写,一个循环的读,结果循环写工作正常,循环读只有第一次正常。读函数如下
#include<stdio.h> //原来是用的memset(r,0,10*sizeof('a')),结果第二次循环的时候i的值
//总是变成-1.挨条语句注释掉测试,才发现问题在这里 //后来加了下面的测试语句,才算明白
printf("sizeof('a') = %d;sizeof(char) =%d;sizeof(r) =%d \n",sizeof('a'),sizeof(char),sizeof(r)); |
问题1
memset(r,0,10*sizeof('a')),r只占用10个byte,而10*sizeof('a')把40byte的空间都置0了。。。。
测试语句的输出:sizeof('a') = 4;sizeof(char) =1 ;sizeof(r) =10
问题2
read函数从来就没有返回过0
我写入10个byte,读出10byte,或者不写,直接读都不会返回0,而是-1;
问题3
sizeof("aaaaa")为什么编译不过呢?