Функции Microsoft _s, они отделяются стандарта C++ теперь?

Поскольку Второй код является неправильным синтаксисом, оператор CASE размещается после FROM

, поэтому мы используем оператор CASE, чтобы создать условие в столбце для каждой строки. Таким образом, оператор CASE должен быть частью SELECT

6
задан pnuts 26 October 2015 в 03:33
поделиться

5 ответов

*_s() функции не являются частью стандарта C, но существует незаконченный 'Технический отчет', предполагая, что они быть добавленным (я не уверен, являются ли стандартные программы в TR точно тем же как Microsoft или если они просто подобны).

TR 24731-1: Расширения Первой части Библиотеки C: проверяющие границы интерфейсы:

Если Вы хотите продолжить использовать старые функции, можно сохранить предупреждения депрекации тихими путем определения макроса _CRT_SECURE_NO_WARNINGS (был _CRT_SECURE_NO_DEPRECATE который мог бы все еще поддерживаться).

12
ответ дан 8 December 2019 в 14:47
поделиться

Вы обновили свой IDE и также обновили Ваши библиотеки Microsoft. Откровенно можно продолжить пользоваться старыми библиотеками, как они продолжают сохраняться (для назад совместимости), хотя Microsoft заявила, что они собираются на самом деле начать вынимать некоторые из этих более старых функций. Я сказал бы, что, если Вы разрабатываете вперед затем, можно использовать более новые функции; если Вы разрабатываете назад (или не волнуете то, что версия), затем, Вы могли бы хотеть использовать более старые функции.

1
ответ дан 8 December 2019 в 14:47
поделиться

При предназначении для платформы Microsoft любой ценой используйте их. Даже если Вы не, можно всегда реализовывать их сами, когда (или если) необходимо портировать программное обеспечение на платформу не-Microsoft.

Худший случай - то, что Вы заканчиваете тем, что использовали некоторых #ifdefs для условной компиляции.

1
ответ дан 8 December 2019 в 14:47
поделиться

Их рассматривают для стандартизации, насколько я могу сказать. Предложение является TR 24731.

Что касается того, является ли это хорошей идеей использовать их, я сказал бы да. Я не очень люблю способ, которым они фиксируют ошибки, но я полагаю, что можно предоставить им собственный обработчик. При необходимости в межплатформенной совместимости, у Вас есть два варианта: реализуйте их с макросами на платформах не-Windows или выключите предупреждения депрекации.

После выполнения обзора через большую кодовую базу я решил, что почти невозможно заставить всех программистов использовать стандартные библиотечные функции C для обработки строк правильно, таким образом, все, что имеет целью исправлять, который является желанным дополнением.

1
ответ дан 8 December 2019 в 14:47
поделиться

Вам следует использовать стандартные функции и отключить любые садистские предупреждения, которые Microsoft включила по умолчанию, чтобы отговорить вас от написания кода, соответствующего стандартам. Я серьезно сомневаюсь, что "_s functions" когда-либо будут добавлены в стандарт C (хотя они были предложены), поскольку они являются изобретением одного поставщика и никогда не были реализованы каким-либо другим поставщиком. (Эй, давайте включим весь POSIX в стандарт C, пока мы на нем ...)

1
ответ дан 8 December 2019 в 14:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: