芯片解密|芯片破解|芯片复制|单片机解密|IC解密| PCB抄板|软件开发

飞芯科技-芯片解密|芯片破解|芯片复制|单片机解密|IC解密| PCB抄板|软件开发

C语言如何使用断言IC解密

IC解密何为断言

断言一般是用于检测在某个程序位置程序必须满足某些条件的宏。一般用的多的可以分两种种情况:


  • 前置条件:在某个程度点开始的地方


  • 后置条件:在某段程序执行结束后,一般用于检测执行结果


断言发生表示程序中存在错误。因此,断言是提高程序可靠性的有效手段。也是开发阶段快速定位问题的一种很好防御式编程方法。


C语言中,断言是一些条件判断的宏。比如C语言内置断言是用标准的 assert 宏实现的。当宏执行时,assert 的参数必须为真,否则程序中止并打印错误消息。


比如,在IAR中:


#define assert(test) ((test) ? (void) 0 : abort())
也可以编程者自己定义,比如:


#define assert(arg) { if( !(arg) ) { printf("assert in File="__FILE__" Line=%d ",__LINE__); return; } }

IC解密该怎么用

前置条件

比如某一个函数代码:


#define ALLOWED_SIZE  (1024)
int func(int size, char *buffer )
{
assert( size <= ALLOWED_SIZE );
assert( format != NULL );
...
}
这个函数里,使用了两次断言判断函数执行的前置条件:


  • size必须要不大于ALLOWED_SIZE,func函数才真正执行其任务。因此,如果输入的size超过1024,func不会做任何处理。
  • buffer传入的地址必须不是NULL,否则func函数不会执行。

具体断言判断失败了,断言宏干了什么,需要看看这个宏的实现,有可能是直接返回,有可能整个程序直接终止执行。所以看看其实现就知道了。



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信