struct 结构体可以这么用
来源:互联网 发布:开票软件最新版本 编辑:程序博客网 时间:2024/06/04 17:51
#include <stdint.h>#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct{uint32_t msg_len;uint32_t msg_type;char msg_body[0];}MSG;#define BODY_OFFSET (unsigned long)(&(((MSG *)0)->msg_body))int main(int argc,char *argv[]){MSG a,*p;printf("sizeof uint32_t is %d\n",sizeof(uint32_t));printf("sizeof MSG is %d\n",sizeof(MSG));printf("sizeof msg_len is %d\n",sizeof(a.msg_len));printf("sizeof msg_body is %d\n",sizeof(a.msg_body));printf("BODY_OFFSET is %lu\n",BODY_OFFSET);p = malloc(sizeof(MSG)+64);if(p){strcpy((char *)p + sizeof(MSG),"My name is iphonec.");printf("msg_body is:%s\n",p->msg_body);free(p);}return 0;}
ubuntu虚拟机
输出:
sizeof uint32_t is 4
sizeof MSG is 8
sizeof msg_len is 4
sizeof msg_body is 0
BODY_OFFSET is 8
msg_body is:My name is iphonec.
- struct 结构体可以这么用
- C#中enum和struct可以这么用
- C# 结构Struct可以继承接口Interface
- 结构体(struct) 用法
- 结构体struct module
- 什么结构体 struct
- struct结构体
- struct hostent结构体
- struct hostent结构体
- struct termios结构体
- struct hostent结构体
- 结构体(struct)
- struct termios结构体
- struct device结构体(
- [Matlab]结构体(Struct)
- struct termios结构体
- struct termios 结构体
- struct device结构体
- 事务管理入门-JDBC/Hibernate事务管理器/Spring注解 3种方式
- Struts2中调用response,request,session的方法
- C++类对象的内存模型
- Vim 插件使用大全
- Windows程序设计3-1 PlaySound 无法解析的外部符号
- struct 结构体可以这么用
- JDBC简单教程-06
- sumsets poj 2229
- zoj 2511 & hdu 1031 Design T-Shirt
- windows 8 获取屏幕大小
- Formula for Entrepreneurial Success
- Java BigDecimal与科学计数法(转String)的问题
- 一句话网页木马汇总
- JDBC简单入门-07