Параметр макро в юникодной строке -- мелочь, а приятно
(?????????) ?????? ???? ??????? ???-?? ?????...
??? ??????, ???? ????? ??????? ????? ? ?/?++, ?????????? stringinize, ? ???????? ??????, ??? ???? ??????????? ???????? ???????? ????? ? ??????, ????????, ???:
#define mymacro(ku) printf("Expression %s is equal to %ld\n", "" #ku, (ku))
????? ?? ??? ??????, ?????? ??? ?????? ??? ?????? ? ?????????? ????????? ???????????? ?? ??? ???? ????? ???? ??? ???????? ?? ???????. ???????????, ??? ??????:
#define CHECK(expr) \
if ( expr ) \
{ \
wprintf(L"Error calling %s\n", L"" L#expr L"" ); \
return 16; \
} \
?? ?????? ????????, ? ????? ? ???? ??????? ????????? ??????? ???? ? ???, ??? ? ???? ?? wprintf() ????, ? ?????? ???????, ??????? ?????? ?????? ?????. ??????, ?????? L"" ?????????????, ??? ? ??? ????????????? ???????.
??? ?? ????, ????? ??? ? ?? ??????? ?????? -- ???? ?? ?????? ???????? ? ????? ?????, ???????? ?? ???????????????, ? ????? ??? ?? ???? ????????? ? ??????????. ? ?????, ??? ???????? ??? ?????????? ???????????? ? ?? ??????????? ? ??? ???? ????? ????????.
Comments
- Anonymous
September 30, 2006
Еще красивее юзать макро для TCHAR:
_T("Error calling "#expr)
...и выглядят такие строки читабельнее, и юникодовость гибко определяется настройками проекта ;) - Anonymous
October 02, 2006
Дело вкуса. Сам я настороженно отношусь в TCHAR - никогда с ней не знаешь, какая версия вызывается. Хотя если писать и для NT-XP, и для 95-98, то, наверное, удобная штука.