师从上官可编程
结构体
c语言的结构体作为c语言很重要的一部分 ,使用它的频率也会很高
今天自己在学习驱动编写时 看到了结构体的另外一种用法 故记录之
下面是结构体的最常规的写法
#include <stdio.h>
#include <stdlib.h>
struct test
{
int a;
int b;
int c;
int d;
}
int main()
{
struct test A={1,2,3,4};
printf("a=%d,b=%d\n",A.a,A.b);
return 0;
}
``
结果
```c
a=1,b=2
我们看代码可以知道 在A这个结构体中 1对应的是test 里面的a,
2对应的是test 里面的b 后面的类推
在这里我们可以知道 A里面的数字应该是与test 里面的变量一一对应
那有没有办法 把1赋值给 b 呢 办法肯定是有的
#include <stdio.h>
#include <stdlib.h>
struct test
{
int a;
int b;
int c;
int d
};
int main()
{
//struct test A={1,2,3,4};
struct test A={
.b=1,
.a=3}
printf("a=%d,b=%d\n",A.a,A.b);
return 0;
}
结果
a=3,b=1
是不是 很神奇
这个方法 主要是运用在驱动的编写
static struct file_operations pin4_fops = {
.owner = THIS_MODULE,
.open = pin4_open,
.write = pin4_write,
};
这个方式 可以按照我们的想法去对结构体赋值 不需要按照顺序
属实赞尼nice