У меня есть книга «Начало C» Айвора Хортона, я прочел ее наполовину, и она мне нравится; Все идет нормально. Я использую Code::Blocks в Windows в качестве своей IDE, и теперь я столкнулся с проблемой, которую не могу решить уже около 3 дней.
Автор упоминает некоторые «необязательные» функции в <string.h>
, такие как strnlen_s()
, а также говорит, что они доступны в новом стандарте C11 (книга 2013 года; я не знаю, насколько новый C11 на самом деле), и он также дает фрагмент кода, который будет определять, "поддерживает ли стандартная библиотека, поставляемая с вашим компилятором C, эти необязательные функции". Это код:
#include <stdio.h>
int main(void)
{
#if defined __STDC_LIB_EXT1__
printf("Optional functions are defined.\n");
#else
printf("Optional functions are not defined.\n");
#endif
return 0;
}
Поэтому я запускаю код, чтобы проверить, работает ли GCC в Code::Blocks, и определить, что это не так. В книге не рекомендуются ни компилятор, ни IDE; Я выбрал Code::Blocks с GCC самостоятельно, так как именно по нему я сдаю экзамены в колледже, поэтому я решил, что должен познакомиться с окружением.
Дело в том, что я понятия не имею, как это «исправить», поскольку strnlen()
не работает, strnlen_s()
не работает и куча других, и я не могу продолжать читать книгу. Не то, чтобы они мне нужны, или я не могу сделать это по-другому (strlen()
прекрасно работает), но было бы неплохо знать, как использовать нестандартные функции.