как определить в compile-time какая версия C используется: C89 или C99? Если #define для этого? Нужно чтобы было портабельно: например gcc,msvc и Sun Forte.
есть либа которая использует gcc и некорые фичи из C99. Нужно портировать на Sun Forte, где нет например таких функций как fabsl( только в C99). Sun Forte поддерживает C99, но используемый runtime только для c89.
Мдаа... Сочувствую. Хотя я б начал с того, чтоб допилил либу именно на предмет С89. Все, что не компилируется в этом стандарте - сдаунгрейдить. Конечно, хозяин-барин.
> Мдаа... Сочувствую. Хотя я б начал с того, чтоб допилил либу именно на предмет С89. Все, что не компилируется в этом стандарте - сдаунгрейдить. Конечно, хозяин-барин.
а если есть core team который [резонно] класть хотел на C89 и предпочитает рисовать свои картинки под C99? це ж не автор - це ж портер. а жизнь портера по-определению тяжела и неказиста.
> це ж не автор - це ж портер. а жизнь портера по-определению тяжела и неказиста.
Тогда я б просто удавилсо;) Особенно если либа развивается дальше, т.е. коре теам продолжает и дальше пилить либу в С99. > а жизнь портера по-определению тяжела и неказиста.
Да, это без базара... Но опять-таки, размер поддерживаемых патчей будет вдвое меньше, если вместо двух вариантов кода в #ifdef #else #endif они будут содержать один. Не правда ль?
> Тогда я б просто удавилсо;) Особенно если либа развивается дальше, т.е. коре теам продолжает и дальше пилить либу в С99.
мне почему то кажется, что будут. по крайней мере не вижу [пока] серьёзных причин для даунгрейда.
> Да, это без базара... Но опять-таки, размер поддерживаемых патчей будет вдвое меньше, если вместо двух вариантов кода в #ifdef #else #endif они будут содержать один. Не правда ль?
конечно проще. но лишь в одном случае: если core team вообще актуальная вся эта возня. если же они класть хотели на сан фортрес с его прибамбасами, что в принципе понимаемо, то.. c'est al vie.
http://predef.sourceforge.net/ - большая коллекция дефайнов, которые определяют разные компиляторы под разными ОС/платформами и т.п. Про версии стандартов там тоже есть.