LinuxC语言结构体高级用法-创新互联

话题引入
  1. 在Linux 内核中很多C语言结构体的写法是下面这样的。
    在这里插入图片描述
  2. 结构体成员变量之前为什么有这么多 . ?,其实这样的写法是为了引用一个函数指针,可以看一下下面这个demo 就明白了。
#include#include#include#includestruct Demo
{int (*add)(int a,int b);
    int (*sub)(int a,int b);
    int (*mul)(int a,int b);
};

int test_add(int a,int b){return a+b;}
int test_sub(int a,int b){return a-b;}
int test_mul(int a,int b){return a*b;}


int main(int argc,char* argv[])
{struct Demo demo={.add=test_add,
        .sub=test_sub,
        .mul=test_mul,
    };
    int a=19;
    int b=3;

    printf("a+b=%d\n",demo.add(a,b)); 
    printf("a-b=%d\n",demo.sub(a,b));
    printf("a*b=%d\n",demo.mul(a,b));   

    return 0;
}
设备文件基本概念
  1. 普通文件可以通过文件名与实际的存储数据进行关联
  2. 设备文件通过设备节点与具体的物理设备进行关联
  3. 设备号:主设备号+次设备号组成
  4. 设备文件存在于/dev/目录下
  5. 设备节点可以自动创建、也可以手工创建
常见的设备文件

在这里插入图片描述
查看内核版本:uname -r -a
dsp设备在Linux 内核2.6 版本中有,在最新的Linux内核中,没有。

创新互联公司服务项目包括孝南网站建设、孝南网站制作、孝南网页制作以及孝南网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,孝南网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到孝南省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

343c409c-03cd-4a54-b20e-8bdfff1219cd

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章名称:LinuxC语言结构体高级用法-创新互联
文章转载:http://hbruida.cn/article/ceedjo.html