Какую библиотеку включить в Windows для функций stdlib.h?

#c #windows #std

#c #Windows #std

Вопрос:

Я пришел из мира Mac и довольно новичок в разработке Windows. Очень простой вопрос: какие библиотеки мне нужно включить в Visual Studio 2010, чтобы получить доступ к некоторым базовым функциям, таким как strtof() или snprintf()? Получение ошибок компоновщика для этих … #including <stdlib.h> , <ctype.h> , <string.h>

Комментарии:

1. msdn.microsoft.com/en-us/library/abx4dbyh.aspx

2. Оба strtof и snprintf являются функциями C99, а компилятор C Visual Studio не поддерживает C99. В C99 есть _snprintf функция <stdio.h> , которая ведет себя иначе, чем в C99 snprintf .

Ответ №1:

MSVC не поддерживает C99 и только наполовину поддерживает более старые версии стандарта C. snprintf и strtof были добавлены в C99 и, следовательно, недоступны.

Комментарии:

1. Только наполовину поддерживает старые версии? Какие части C89 он не поддерживает?

2. Что касается C89, я, кажется, припоминаю, что были какие-то ошибки в препроцессоре, но я не уверен сразу. Что касается более поздних поправок 94/95, попробуйте wprintf(L"%sn", "hello"); использовать MSVC…

3. Ха, я и не знал, что в 94/95 были поправки, я просто думал, что все это было добавлено только в C99. Конечно, я могу поверить, что они несовместимы с этими поправками, но AFAIK, они соответствуют стандарту C89.

4. wchar_t были добавлены и связанные с ними функции, но MS их испортила. 🙂 Я думаю, что могут быть и некоторые проблемы с соответствием C89, но, вероятно, не намного хуже, чем у glibc.