LINUX.ORG.RU

Ни в каком (rpc/types.h я отбрасываю, как несущественный). А кто сказал, что они обязаны быть определены да еще и в glibc?

anonymous
()
Ответ на: комментарий от anonymous

я ваще нихрена не понимаю. gcc понимает FALSE и TRUE, а скажем g++ нет. Что делать? Весь код переписывать?

anonymous
()
Ответ на: комментарий от anonymous

а сделать #define FALSE false #define TRUE true ???

Deleted
()
Ответ на: комментарий от anonymous

Ну так вынеси код на C в отдельный модуль, откомпилируй его gcc, а затем подлинкуй к проге и все. Сематика некоторых низкоуровневых средств C отличается от C++ - поэтому я не думаю, что смешивание в одном файле кода на этих языках будет хорошей идеей.

Begemoth ★★★★★
()
Ответ на: комментарий от anonymous

А код можно привести? Да еще можно компилить так g++ -DTRUE=true -DFALSE=false <твой-файл>.c

Begemoth ★★★★★
()
Ответ на: комментарий от alphex_kaanoken

Хм, а всегда TRUE = true и FALSE = false. А то хочу что бы код был чистенький, компилить, как тут сказали своими компилерами, но все же между модулями то тоже общение есть и нужно анализировать возвращаемые значения. Хотя наверное лучше делать их числами для надежности?

anonymous
()
Ответ на: комментарий от anonymous

упорно напрягая мозги
в Це нету true and false это появилось позже в Це++

Aleks_IZA
()
Ответ на: комментарий от alphex_kaanoken

А еще проще в Makefile прописать что-то типа CFLAGS = -DTRUE=1 -DFALSE=0 и потом компилировать gcc $(CFLAGS) ... А если исползуешь automake, то там надо написать your_module_CFLAGS = -DTRUE=1 -DFALSE=0

Begemoth ★★★★★
()
Ответ на: комментарий от lg

для какой надежности? В С нет логических значений, их роль играют целые числа.

А еще можно
#define TRUE (2 == 2)
или
#define TRUE (3 != 2)
или
#define TRUE 354
Какая разница, если все что не 0 - истинно. еще можно сделать
#define FALSE NULL
и т.д. до бесконечности

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

> для какой надежности? В С нет логических значений, их роль играют
> целые числа.

> А еще можно
> #define TRUE (2 == 2)
> или
> #define TRUE (3 != 2)
> или
> #define TRUE 354
> Какая разница, если все что не 0 - истинно. еще можно сделать
> #define FALSE NULL
> и т.д. до бесконечности

есть разница ..

например для меня 1 или 354 это далеко не истина, а просто корявые
числа, а то как это с точки зрения C мне не важно .. для меня истина
что один всегда равен одному, а ложь это все что не истина .. если для
какого то языка это не верно то просто не надо на таком языке
програмить

к томуже NULL == (!(1 == 1)) не всегда истина, то что на твоей машине
это правда это не значит что так у всех ..

lg ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.