原创 学习c语言第一天感触

2010-4-13 17:49 1537 9 10 分类: MCU/ 嵌入式

2010-4-13<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />



问题:


#include   <stdlib.h>  
  #include   <stdio.h>  
   
  int   compare_int(int   *a,int   *b)  
  {  
        return(*a-*b);  
  }  
   
  void   main(void)  
  {  
          int   int_values[]={1,3,2,4,5};
          int   *int_ptr,int_value=2,elements=5;
           
          int_ptr=lfind(&int_value,int_values,&elements,sizeof(int),  
                                      int   (*)   (const   void   *,const   void   *)   compare_int);  
        //
在函数原型中这里说明的是一个函数指针,
        //
但这里我看不懂int   (*)   (const   void   *,const   void   *)   compare_int  
        //
是一个函数指针吗?
          if(*int_ptr)
                  printf("\nValue   is   found!\n");
          else  
                  printf("\nValue   not   foune!\n");
  }



解答:



int   (*)   (const   void   *,const   void   *)   compare_int
   
 
这段代码将compare_int作了强制类型转换:  
  int   (*)   (int*   a,   int*   b)  
  ==>  
  int   (*)   (const   void*,   const   void*)  
   
 
为了匹配lfind的最后一个参数类型;  
   
 
相当于:  
  typedef   int   (*COMPARE_FUNC)   (const   void*,   const   void*);  
  int_ptr   =   lfind(&int_value,int_values,&elements,sizeof(int),  
                                (COMPARE_FUNC)   compare_int   );  


点评:


Good!


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

tengjingshu_112148725 2010-4-14 09:18

谢谢分享经验

用户1432516 2008-12-24 19:38

弄好了 原来是时序方面除了一些问题
相关推荐阅读
michael_xing 2010-05-13 18:16
【book】Linux设备驱动开发详解(2)
...
michael_xing 2010-05-13 18:14
【book】Linux设备驱动开发详解
...
michael_xing 2010-05-13 18:09
学些linux嵌入式
沉思了好久,终于有所醒悟,开始就是成功的一半!顶住压力,才能希望成功!藐视仰视,也许才能明白自己的价值!开放闭塞,才能走出围城!今天开始,,,,,,...
michael_xing 2010-04-08 09:13
嵌入式的学习历程:FREERTOS的原理与实现
嵌入式操作系统FreeRTOS的原理与实现<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&...
michael_xing 2010-04-08 09:09
嵌入式的学习历程:嵌入式启动信息分析(三)
 嵌入式Linux内核的块设备驱动:<?XML:NAMESPACE PREFIX = O />对于linux 的根文件系统,目前有三种块设备的驱动可以选择,它们分别是:a) Blkmem ...
EE直播间
更多
我要评论
1
9
关闭 站长推荐上一条 /3 下一条