Поскольку Второй код является неправильным синтаксисом, оператор CASE размещается после FROM
, поэтому мы используем оператор CASE, чтобы создать условие в столбце для каждой строки. Таким образом, оператор CASE должен быть частью SELECT
*_s()
функции не являются частью стандарта C, но существует незаконченный 'Технический отчет', предполагая, что они быть добавленным (я не уверен, являются ли стандартные программы в TR точно тем же как Microsoft или если они просто подобны).
TR 24731-1: Расширения Первой части Библиотеки C: проверяющие границы интерфейсы:
Если Вы хотите продолжить использовать старые функции, можно сохранить предупреждения депрекации тихими путем определения макроса _CRT_SECURE_NO_WARNINGS
(был _CRT_SECURE_NO_DEPRECATE
который мог бы все еще поддерживаться).
Вы обновили свой IDE и также обновили Ваши библиотеки Microsoft. Откровенно можно продолжить пользоваться старыми библиотеками, как они продолжают сохраняться (для назад совместимости), хотя Microsoft заявила, что они собираются на самом деле начать вынимать некоторые из этих более старых функций. Я сказал бы, что, если Вы разрабатываете вперед затем, можно использовать более новые функции; если Вы разрабатываете назад (или не волнуете то, что версия), затем, Вы могли бы хотеть использовать более старые функции.
При предназначении для платформы Microsoft любой ценой используйте их. Даже если Вы не, можно всегда реализовывать их сами, когда (или если) необходимо портировать программное обеспечение на платформу не-Microsoft.
Худший случай - то, что Вы заканчиваете тем, что использовали некоторых #ifdef
s для условной компиляции.
Их рассматривают для стандартизации, насколько я могу сказать. Предложение является TR 24731.
Что касается того, является ли это хорошей идеей использовать их, я сказал бы да. Я не очень люблю способ, которым они фиксируют ошибки, но я полагаю, что можно предоставить им собственный обработчик. При необходимости в межплатформенной совместимости, у Вас есть два варианта: реализуйте их с макросами на платформах не-Windows или выключите предупреждения депрекации.
После выполнения обзора через большую кодовую базу я решил, что почти невозможно заставить всех программистов использовать стандартные библиотечные функции C для обработки строк правильно, таким образом, все, что имеет целью исправлять, который является желанным дополнением.
Вам следует использовать стандартные функции и отключить любые садистские предупреждения, которые Microsoft включила по умолчанию, чтобы отговорить вас от написания кода, соответствующего стандартам. Я серьезно сомневаюсь, что "_s functions" когда-либо будут добавлены в стандарт C (хотя они были предложены), поскольку они являются изобретением одного поставщика и никогда не были реализованы каким-либо другим поставщиком. (Эй, давайте включим весь POSIX в стандарт C, пока мы на нем ...)