nginx-0.8.37

Boris Dolgov boris на dolgov.name
Пн Май 17 12:00:28 MSD 2010


2010/5/17 Igor Sysoev <igor at sysoev.ru>:
>> +#define ngx_str_set(str, text)                                               \
>> +    (str)->len = sizeof(text) - 1; (str)->data = (u_char *) text
>> +#define ngx_str_null(str)   (str)->len = 0; (str)->data = NULL
>>
>>
>> Не понятно, а чем плох вариант просто сделать
>>
>> #define ngx_string(str)     ((ngx_str_t) { sizeof(str) - 1, (u_char *) str })
>>
>> и писать, соотвественно
>>
>> str = ngx_string("ABCD")?
>
> Он плох тем, что MSVC8 про него говорит так:
> error C2059: syntax error : '{'

Получается ошибкопорождающее место при использовании в if'e/цикле:

ngx_str_set(x, "aaa");
if(a) ngx_str_set(x, "abcd");

Может быть, имеет смысл делать вариант Кирилла для gcc, а для MSVС
обернуть в do {} while (0)?

-- 
Boris Dolgov.


Подробная информация о списке рассылки nginx-ru