查看: 2906|回复: 18
打印 上一主题 下一主题

在KEIL编译的时候,检测一个结构体的大小

[复制链接]
跳转到指定楼层
沙发
发表于 2014-8-6 14:30:47 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
用以下代码,经测试可以实现:

  1. #define JION(x, y) XJION(x, y)
  2. #define XJION(x, y) x ## y
  3. #define static_assert(e) typedef char JION(assertion_failed_at_line_, __LINE__) [(e) ? 1 : -1]

  4. void main(void)
  5. {
  6.     static_assert(sizeof(rst_appparams) == 256);
  7.     //.....
  8. }
复制代码



结构体不是256的话,会编译错误:
..\System\appparams.c(61): error:  #94: the size of an array must be greater than zero

回复

使用道具 举报

板凳
 楼主| 发表于 2014-8-6 16:49:27 | 显示全部楼层
lucky80204 发表于 2014-8-6 16:17
你说的是结构体的定义空间吗??

{:soso__6236112034290849730_2:}
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2014-8-6 16:50:21 | 显示全部楼层
还你一世界 发表于 2014-8-6 16:40
好精简的一个技术贴~

{:soso__15960872840493620282_2:}
回复 支持 反对

使用道具 举报

4#
 楼主| 发表于 2014-8-7 09:13:17 | 显示全部楼层
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2014-8-7 10:49:02 | 显示全部楼层
jerryzhai 发表于 2014-8-7 09:14
楼主这个表情需要改一下,这样很不友好!要酱紫才好

那是大拇指,我在夸你呢
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2014-8-7 10:49:21 | 显示全部楼层

thanks。。。
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2014-8-7 12:44:55 | 显示全部楼层
lxe 发表于 2014-8-7 12:17
。。。果然短小精旱

   
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2014-8-7 16:31:05 | 显示全部楼层
张衍波 发表于 2014-8-7 15:54
原来这么个情况,,,

啥情况   
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2014-8-7 16:31:23 | 显示全部楼层

你瞎      
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表