当前位置:  技术问答>linux和unix

一段小程序,看的不是很明白。

    来源: 互联网  发布时间:2016-12-20

    本文导语:  typedef struct iwlist_entry {   const char * cmd;            /* Command line shorthand */   iw_enum_handler fn; /* Subroutine */   int max_count;   const char * argsname; /* Args as human readable string */ } iwlist_cmd; static const str...

typedef struct iwlist_entry {
  const char * cmd;            /* Command line shorthand */
  iw_enum_handler fn; /* Subroutine */
  int max_count;
  const char * argsname; /* Args as human readable string */
} iwlist_cmd;

static const struct iwlist_entry iwlist_cmds[] = {
  { "scanning",   print_scanning_info, -1, "[essid NNN] [last]" },
  { "frequency", print_freq_info, 0, NULL },
  { "channel", print_freq_info, 0, NULL },
  { "bitrate", print_bitrate_info, 0, NULL },
  { "rate", print_bitrate_info, 0, NULL },
  { "encryption", print_keys_info, 0, NULL },
  { "keys", print_keys_info, 0, NULL },
  { "power", print_pm_info, 0, NULL },
#ifndef WE_ESSENTIAL
  { "txpower", print_txpower_info, 0, NULL },
  { "retry", print_retry_info, 0, NULL },
  { "ap",     print_ap_info, 0, NULL },
  { "accesspoints", print_ap_info, 0, NULL },
  { "peers", print_ap_info, 0, NULL },
  { "event", print_event_capa_info, 0, NULL },
  { "auth", print_auth_info, 0, NULL },
  { "wpakeys", print_wpakeys_info, 0, NULL },
  { "genie", print_gen_ie_info, 0, NULL },
  { "modulation", print_modul_info, 0, NULL },
#endif /* WE_ESSENTIAL */
  { NULL, NULL, 0, 0 },
};

上面的程序看的不是很明白,能帮我讲讲吗?尤其比如说{ "frequency", print_freq_info, 0, NULL },这种格式是什么意思?他是iwlist_entry结构体里面的成员吗?

|
看样子是函数入口数组,通过输入命令cmd决定选择使用哪一个入口,fn是函数指针,max_count是参数的个数,argsname是参数列表。
比如,输入"rate"时,就要调用函数:print_bitrate_info();

|
static const struct iwlist_entry iwlist_cmds[] 这不是定义了一个iwlist_entry类型的结构体数组iwlist_cmds嘛;

{ "frequency", print_freq_info, 0, NULL }这是对数组iwlist_cmds中的成员(每一个数组成员都是一个iwlist_entry结构体变量)进行初始化:
cmd="frequency"
fn=print_freq_info
max_count=0
argsname=NULL

|
个人认为,是的。其实这段程序我完全不明白是什么意思。大约是定义一结构体,再定义这个结构体类型的一个数组,赋值。

|
就是定义一个结构体数组,并且赋值。

|
这种设计挺常见的,不错的设计。需要注意的是fn是一个函数指针。

|
就是结构体成员的付值,没什么特别的呀

    
 
 

您可能感兴趣的文章:

  • 简单的hello world程序,就是闹不明白!
  • 我初学java,用的是jdk1.3,但是有一点不明白?整个java程序的入口在什么地方?
  • 没有main()应用程序照样运行!!!???我也不明白!!都是jb5.0惹得祸!!
  • 我是菜鸟,请帮助我。编译JAVA程序时,“e.hasMore Elements()”出错,不明白!
  • 在shell程序中,函数的返回值问题,不明白!
  • 就一行简单的代码,程序执行却错误,N久没有搞明白
  • 有段程序看不明白,请高人指导?
  • 真的是不明白,高手帮指点下,程序怎么不按套路来了呢???
  • 有一段JAVA程序看的不是很明白,希望高手指点(一定给分)
  • 《thinking in java》一个有关继承的程序不明白,请讲一讲,谢谢
  • 一个晚上了,我还是不明白?各位兄弟,帮帮忙吧!看看下面一段程序是关于JList类的!
  • APUE 文件复制到分页程序 中不明白的一点求高手解答
  • 关于死锁的一个程序,有几个地方不明白,请教一下
  • 昨天开始学LINUX,编了一个关于进程的c程序,虽然结果对了,但过程却不明白。请教!
  • 请问gdb是不是只能调试gcc编译的程序,在unix下用其它编译器编译的程序是不是不一定能用gdb调试的?
  • 在内核为2.4版本下开发的程序在2.6下编译是不是很容易会发生错误?不是应该往上兼容吗?
  • linux的程序员是不是比windows程序员的薪水高啊?
  • Linux/Unix下写C程序是不是就像DOS下写程序一样呀?
  • 我的jdk配置有问题吗?为什么提示总是‘javac’不是内部或外部命令,也不是可运行的程序或批处理文件
  • vasual cafe 中有个包叫symantec,它是不是标准的j2se包,如果不是,用它写出的程序如何在通用?
  • 定时top看系统参数,发现我的程序的SIZE项和RES项的数值一直在增加,这是不是说明,我的程序有内存泄漏?
  • Unix下的CC能编译C++的程序吗?不是GCC
  • 请问gcc是不是要加什么参数才能编译C++程序的呢
  • 怎么写程序以支持 linux负载均衡群集,不是冗余
  • 请问用JB7编译过的JAVA程序,哪一个文件是可执行程序啊?我怎么找不到啊?不是CLASS文件吧。双击他直接把JB7打开了。
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • XR11是什么东西,是不是没有它有些程序无法编译成功!
  • linux 下如何取出一个分区的类型(不是查看而是要在我的程序中判断出来)
  • 请问某个数据库(如oracle)的jdbc驱动程序是不是在所有平台下通用?
  • 在程序中启动一个进程(不是线程),如何知道该进程已运行结束
  • linux下各种文件用什么程序打开?是不是在mine type里设置?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • linux下通过crond实现自动执行程序
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • http协议介绍,文件上传分析及程序举例
  • 在java控制台程序中,可以用System.exit(0);使用一个程序终止,那么在servlet中如何使一个servlet程序终止呢?
  • 程序员赚钱致富的6种方法
  • 程序调用脚本,脚本启动另一个程序,如何让原始程序彻底释放资源?
  • HASH查找的程序实现及性能分析
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • 程序员为了健康必看!早晨空腹喝水,是对还是错?
  • linux下,一个程序如何向另一个程序发送消息,另一个程序如何接收


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3