嵌入式开发知识点总结

Posted embeded-linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式开发知识点总结相关的知识,希望对你有一定的参考价值。

offsetof和container_of宏

offsetof宏的作用:计算结构体中某个元素相对结构体首地址的偏移量

container_of宏的作用:知道结构体变量中某个成员的指针,反推这个结构体变量的指针

#include <stdio.h>
#define offsetof(type,member) ((int) &((type *)0)->member)
#define container_of(ptr,type,member) (    const typeof(((type *)0)->member) *mptr = (ptr);    (type *)((char *)mptr - offsetof(type,member));)
//typeof关键字的作用:typeof(a)由变量a获得变量a的类型
typedef struct node
    int a;
    double b;
    float c;
 n1;
int main()

    n1 s;
    float *p = &(s.c);
    printf("offsetof(c) = %d\n",offsetof(n1,c));
    printf("addr of s is %p\n",&s);
    printf("container_of(p,n1,c) = %p\n",container_of(p,n1,c));
    return 0;
    
技术图片
sizeof(short) = 2
sizeof(int) = 4
sizeof(long) = 4

--------------------------------
Process exited after 0.1803 seconds with return value 0
请按任意键继续. . .
运行结果

 

以上是关于嵌入式开发知识点总结的主要内容,如果未能解决你的问题,请参考以下文章

stm32 嵌入式开发 中ADC独立多通道DMA传输数据实验总结

JAVA基础知识总结1(概述)

基于软件开发对嵌入式开发的思考

嵌入式开发会招哪些技能的人?

嵌入式C语言重点知识点

CAN现场总线基础知识总结,看这一篇就理清了(CAN是什么,电气属性,CAN通协议等)