這個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")));