LINUX.ORG.RU

[C] version

 


0

0

как определить в compile-time какая версия C используется: C89 или C99? Если #define для этого? Нужно чтобы было портабельно: например gcc,msvc и Sun Forte.

anonymous

Есть флаг компилятора -std (-std=c89 по умолчанию или -std=c99).

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

есть либа которая использует gcc и некорые фичи из C99. Нужно портировать на Sun Forte, где нет например таких функций как fabsl( только в C99). Sun Forte поддерживает C99, но используемый runtime только для c89.

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

Дык почему не закрутить стандарт на уровне C89 и не мучаться поддержкой двух вариантов кода?

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

У меня есть свой бранч в кором я допиливаю эту либу.

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

Мдаа... Сочувствую. Хотя я б начал с того, чтоб допилил либу именно на предмет С89. Все, что не компилируется в этом стандарте - сдаунгрейдить. Конечно, хозяин-барин.

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

> Мдаа... Сочувствую. Хотя я б начал с того, чтоб допилил либу именно на предмет С89. Все, что не компилируется в этом стандарте - сдаунгрейдить. Конечно, хозяин-барин.

а если есть core team который [резонно] класть хотел на C89 и предпочитает рисовать свои картинки под C99? це ж не автор - це ж портер. а жизнь портера по-определению тяжела и неказиста.

// wbr

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

> це ж не автор - це ж портер. а жизнь портера по-определению тяжела и неказиста.
Тогда я б просто удавилсо;) Особенно если либа развивается дальше, т.е. коре теам продолжает и дальше пилить либу в С99.

> а жизнь портера по-определению тяжела и неказиста.

Да, это без базара... Но опять-таки, размер поддерживаемых патчей будет вдвое меньше, если вместо двух вариантов кода в #ifdef #else #endif они будут содержать один. Не правда ль?

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

> Тогда я б просто удавилсо;) Особенно если либа развивается дальше, т.е. коре теам продолжает и дальше пилить либу в С99.

мне почему то кажется, что будут. по крайней мере не вижу [пока] серьёзных причин для даунгрейда.

> Да, это без базара... Но опять-таки, размер поддерживаемых патчей будет вдвое меньше, если вместо двух вариантов кода в #ifdef #else #endif они будут содержать один. Не правда ль?

конечно проще. но лишь в одном случае: если core team вообще актуальная вся эта возня. если же они класть хотели на сан фортрес с его прибамбасами, что в принципе понимаемо, то.. c'est al vie.

// wbr

klalafuda ★☆☆
()

http://predef.sourceforge.net/ - большая коллекция дефайнов, которые определяют разные компиляторы под разными ОС/платформами и т.п. Про версии стандартов там тоже есть.

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