здравствуйте!
как компилятор отреагирует на выражениеif (NULL)
?
>здравствуйте!
>
>как компилятор отреагирует на выражение
>
>if (NULL)
Скомпилирует нечто вроде(на x86):
cmp eax, 0
jnz __L54738
А если gcc с опцией -O2 то может вообще ничего не скомпилирует.
>>здравствуйте!
>>
>>как компилятор отреагирует на выражение
>>
>>if (NULL)
>Скомпилирует нечто вроде(на x86):
>cmp eax, 0
>jnz __L54738
>А если gcc с опцией -O2 то может вообще ничего не скомпилирует.
>
У меня компилятор ругается:
warning: converting to non-pointer type 'bool' from NULLможет это от системы зависит? или пакетов каких не хватает?
>У меня компилятор ругается:
>warning: converting to non-pointer type 'bool' from NULL
>
>может это от системы зависит? или пакетов каких не хватает?
Ага, от системы по-любому, нужен линукс 2.6.7, и не хватает libsmclient-3.
Нет конечно, NULL это тип указатель, да он на многих системах 0, а где-то может кстати и не 0 вовсе. Предупреждение компилятора, что не тот тип.
И вообще это шутка такая про if(NULL)? Смысл такого условия? Вроде не первое апреля.
>>У меня компилятор ругается:
>>warning: converting to non-pointer type 'bool' from NULL
>>
>>может это от системы зависит? или пакетов каких не хватает?
>Ага, от системы по-любому, нужен линукс 2.6.7, и не хватает libsmclient-3.
>Нет конечно, NULL это тип указатель, да он на многих системах 0,
>а где-то может кстати и не 0 вовсе. Предупреждение компилятора, что
>не тот тип.
>И вообще это шутка такая про if(NULL)? Смысл такого условия? Вроде не
>первое апреля.У меня FC5 , хочу поставить себе netams для замера траффика, и нифига он у меня не компилится!
define SHOW_OIDS(file, flag, name, id) { \
if(flag&CFG_SHOW_OIDS) fprintf(file, "%06X ", id); \
else SHOW_STR(file, NULL, name); \
}#define SHOW_STR(file, prefix, str) { \
if (prefix) fprintf(file, "%s ", prefix); \
if (str && strchr(str, ' ')) \
fprintf(file, "\"%s\" ", str?str:""); \
else fprintf(file, "%s ", str?str:""); \
}а в данном случае по сути так и получается if (NULL),
if (prifix) а prifix передан как NULL
>>>У меня компилятор ругается:
>>>warning: converting to non-pointer type 'bool' from NULL
>а в данном случае по сути так и получается if (NULL),
>if (prifix) а prifix передан как NULL
warning, а не error. Сомневаюсь, что не собирается из-за этого.
>>>>У меня компилятор ругается:
>>>>warning: converting to non-pointer type 'bool' from NULL
>>а в данном случае по сути так и получается if (NULL),
>>if (prifix) а prifix передан как NULL
>warning, а не error. Сомневаюсь, что не собирается из-за этого.
аа! ясно, значит собирается! это хорошо:))
спасибо!