767 //组装字符串,str is char*
768 #define GEN_STR(str,...) \
769 do{\
770 memset(str, 0, sizeof(str));\
771 snprintf(str, sizeof(str), __VA_ARGS__);\
772 }while(0)
773
774 //str is std::string
775 #define TO_STRING(str,...)\
776 do {\
777 str.clear();\
778 char tmp[1024];\
779 memset(tmp, 0, sizeof(tmp));\
780 snprintf(tmp, sizeof(tmp), __VA_ARGS__);\
781 str = std::string(tmp);\
782 }while(0)
783
784
785 #define SAFE_DELETE(ptr) \
786 do{ \
787 if((ptr) != NULL) { \
788 delete (ptr); \
789 (ptr) = NULL; \
790 } \
791 }while(0)
792
793 #define CORRECT_VALUE(val, min, max) \
794 do { \
795 if((val) < (min)) { \
796 val = min; \
797 } else if((val) > (max)) { \
798 val = max; \
799 } \
800 }while(0)