摘要: 01 #include 02 #include 03 #include 04 #include 05 #include 06 #include 07 #include 08 09 #define CALL_DEV_NAME "calldev" 10 #define CALL_DEV_MAJOR 240 11 12 int call_open (struct inode *inode, struct file *filp) 13 { 14 int num = MINOR (inode -i_rdev); //利用MINOR宏,获取次设备号 15 16 printk ( 阅读全文
posted @ 2012-09-21 19:59 福。oO 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 例9: char s='a'; int *ptr; ptr=(int*)&s; *ptr=1298; 指针ptr是一个int*类型的指针,它指向的类型是int。它指向的地址就是s的首地址。在32位程序中,s占一个字节,int类型占四个字节。最后一条语句不但改变了s所占的一个字节,还把和s相临的高地址方向的三个字节也改变了。这三个字节是干什么的?只有编译程序知道,而写程序的人是不太可能知道的。也许这三个字节里存储了非常重要的数据,也许这三个字节里正好是程序的一条代码,而由于你对指针的马虎应用,这三个字节的值被改变了!这会造成崩溃性的错误。 阅读全文
posted @ 2012-09-21 19:10 福。oO 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 如果有一个指针p,我们需要把它的类型和所指向的类型改为TYEP*, 那么语法格式是:   (TYPE*)p;   这样强制类型转换的结果是一个新指针,该新指针的类型是TYPE*,它指向的类型是TYPE,它指向的地址就是原指针指向的地址。而原来的指针p的一切属性都没有被修改。   一个函数如果使用了指针作为形参,那么在函数调用语句的实参和形参的结合过程中,也会发生指针类型的转换。 例7: void fun(char*); int a=125, b; fun((char*)&a); ... ... void fun(char *s) { char c; c=*(s+3);*(s+3)=*(s+0);*(s+0)=c; c=*(s+2);*(s+2)=*(s+1);*(s+1)=c; } 注意这是一个32位程序,故int类型占了四个字节,char类型占一个字节。函数fun的作用是把一个整数的四个字节的顺序来个颠倒。注意到了吗?在函数调用语句中,实参&a的结果是一个指针,它的类型是int 阅读全文
posted @ 2012-09-21 19:10 福。oO 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 可以声明一个指向结构类型对象的指针。 例5: structMyStruct {  int a;  int b;  int c; } MyStruct ss={20,30,40}; //声明了结构对象ss,并把ss的三个成员初始化为20,30和40。 MyStruct*ptr=&ss; //声明了一个指向结构对象ss的指针。它的类型是MyStruct*,它指向的类型是MyStruct。 int*pstr=(int*)&ss; //声明了一个指向结构对象ss的指针。但是它的类型和它指向的类型和ptr是不同的。 阅读全文
posted @ 2012-09-21 19:09 福。oO 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 数组的数组名其实可以看作一个指针。看下例:   例2: intarray[10]={0,1,2,3,4,5,6,7,8,9},value; ... ... value=array[0];//也可写成:value=*array; value=array[3];//也可写成:value=*(array+3); value=array[4];//也可写成:value=*(array+4); 上例中,一般而言数组名array代表数组本身,类型是int[10],但如果把array看做指针的话,它指向数组的第0个单元,类型是int*,所指向的类型是数组单元的类型即int。因此*array等于0就一点也不奇怪了。同理,array+3是一个指向数组第3个单元的指针,所以*(array+3)等于3。其它依此类推。 阅读全文
posted @ 2012-09-21 19:08 福。oO 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容: [1]指针的类型, [2]指针所指向的类型, [3]指针的值或者叫指针所指向的内存区, [4]还有指针本身所占据的内存区。 --sizeof(指针变量名) 一般32位机都为4; 指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C越来越熟悉时,你会发现,把与指针搅和在一起的"类型"这个概念分成"指针的类型"和"指针所指向的类型"两个概念,是精通指针的关键点之一。 阅读全文
posted @ 2012-09-21 19:06 福。oO 阅读(345) 评论(0) 推荐(0) 编辑
摘要: (1)安装module-init-tools-3.0.tar.gz: # tar -zxvf module-init-tools-3.0.tar.gz   # cd module-init-tools-3.0   # ./configure --prefix=/sbin   # make   # make install   # ./generate-modprobe.conf /etc/modprobe.conf   不知道为什么,我用module-init-tools-3.1时make出错。如果改用3.0的就没事了。 阅读全文
posted @ 2012-09-21 18:49 福。oO 阅读(276) 评论(0) 推荐(0) 编辑