知了博客

集天地之精华,吸日月之灵气

« 关于wince OS开发面试问题的总结系列之OALWinCE系统资源查看器 »

printf() 与 RETAILMSG()

一、printf() 与 RETAILMSG() 差别

 
   这个printf(),大家可能都是很熟悉的了,而RETAILMSG()是在evc 下的嵌入式开发 s3c2410,arm9 ,用的,在wince 操作系统下的。
  大家在调试信息的时候,一般都会用到这些函数,来显示输出信息;evc 对两个函数也都是支持的。
  但是,如果系统对实时性要求高的话,那么这两个函数就会有很大的区别;
  printf 函数的所使用的时间要远比RETAILMSG()大的多。printf函数的调用大约要用去100毫秒的时间,而RETAILMSG()用的时间大约10毫秒;
  所以在,debug 版本的调试中,在输出信息的地方,能用RETAILMSG()就用RETAILMSG();尽量不用printf;
  当然在,realease 版本中,要把所有的输出调试信息的函数尽量都屏蔽掉;方法是通过使用 #ifdef ,如下:
#ifdef DEBUG
  printf("\n broadcast Hello");
#endif;
【or】
#ifdef DEBUG
  RETAILMSG(1,(TEXT("Receive a packet\t\n")));
#endif;

二、使用RETAILMSG宏时,应注意一个问题
    由于RETAILMSG需要Unicode类型的字符串,所以使用的时候应该这样写
   RETAILMSG(1,(TEXT("%s\n"),TEXT("Your str")));

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Arwen Build 90619 Code detection by Codefense  theme by BokeZhuti

Copyright know blog. Some Rights Reserved.站长(msn):webmaster#webgou.info(#换成@) 粤ICP备09183716号