Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Аргументы функций wcscpy_s, wcscat_s / 10 сообщений из 10, страница 1 из 1
06.07.2017, 09:54
    #39483564
l-evgene
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аргументы функций wcscpy_s, wcscat_s
Добрый день.
В учебниках ничего вразумительного не нашел.
Код: plaintext
1.
2.
3.
4.
	wcscpy_s(ExistingFileName, pPathSource);														
	wcscat_s(ExistingFileName, _countof(ExistingFileName), pFileName);								//откуда копировать
	wcscpy_s(NewFileName, PathDest);																
	wcscat_s(NewFileName, _countof(NewFileName), pFileName);										//куда копировать

Выяснил, что в этих функциях в качестве аргументов можно использовать как переменные, так и указатели на них (без операнда (*)).
Это на самом деле так задумано или есть какая-то засада?
...
Рейтинг: 0 / 0
06.07.2017, 10:04
    #39483571
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аргументы функций wcscpy_s, wcscat_s
В гугле не пробовал поискать или в MSDN ? https://msdn.microsoft.com/ru-ru/library/td1esda9.aspx
Это виндовые функции, в учебниках их не описывают.
...
Рейтинг: 0 / 0
06.07.2017, 13:28
    #39483776
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аргументы функций wcscpy_s, wcscat_s
l-evgeneВыяснил, что в этих функциях в качестве аргументов можно использовать как переменные, так и указатели на них (без операнда (*)).
Это на самом деле так задумано или есть какая-то засада?
Массивы в С/С++ при передаче в функции, ожидающие указатель, неявно преобразуются к указателю на 0-й элемент
...
Рейтинг: 0 / 0
06.07.2017, 14:27
    #39483853
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аргументы функций wcscpy_s, wcscat_s
l-evgene Выяснил, что в этих функциях в качестве аргументов можно использовать как переменные, так и указатели на них (без операнда (*)).


Это на самом деле так задумано или есть какая-то засада?

нет, ты выяснил неверно, параметры - ТОЛЬКО указатели.
...
Рейтинг: 0 / 0
06.07.2017, 14:32
    #39483858
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аргументы функций wcscpy_s, wcscat_s
Anatoly Moskovskyl-evgeneВыяснил, что в этих функциях в качестве аргументов можно использовать как переменные, так и указатели на них (без операнда (*)).
Это на самом деле так задумано или есть какая-то засада?
Массивы в С/С++ при передаче в функции, ожидающие указатель, неявно преобразуются к указателю на 0-й элемент


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

наверное, и в С++ так же, поскольку не всегда известна сигнатура полностью.
...
Рейтинг: 0 / 0
06.07.2017, 14:49
    #39483871
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аргументы функций wcscpy_s, wcscat_s
https://msdn.microsoft.com/ru-ru/library/td1esda9.aspx
там дополнительно шаблоны есть
Код: plaintext
1.
2.
3.
4.
5.
template <size_t size>  
errno_t strcpy_s(  
   char (&strDestination)[size],  
   const char *strSource   
); // C++ only  
...
Рейтинг: 0 / 0
06.07.2017, 21:56
    #39484130
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аргументы функций wcscpy_s, wcscat_s
l-evgeneДобрый день.
В учебниках ничего вразумительного не нашел.
В учебниках скорее всего есть упоминание о базовом строковом API таком как
- strcpy(..)
- strcat(..)

А то что ты нашел - это братья-близнецы этого API разработанные Microsoft для своих нужд.
...
Рейтинг: 0 / 0
07.07.2017, 05:09
    #39484174
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аргументы функций wcscpy_s, wcscat_s
maytonА то что ты нашел - это братья-близнецы этого API разработанные Microsoft для своих нужд.Да, крайне странный набор функций. Во-первых, печалит warning про то, что str*** все такие не безопасные, ой-ой. Каждый раз теперь приходится дефайн добавлять. Во-вторых, если использовать эти _s фукции, придётся тащить за собой новый рантайм, а это ещё хуже.
...
Рейтинг: 0 / 0
07.07.2017, 06:56
    #39484179
l-evgene
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аргументы функций wcscpy_s, wcscat_s
Спасибо за помощь!
...
Рейтинг: 0 / 0
07.07.2017, 08:12
    #39484202
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аргументы функций wcscpy_s, wcscat_s
CEMbmaytonА то что ты нашел - это братья-близнецы этого API разработанные Microsoft для своих нужд.Да, крайне странный набор функций. Во-первых, печалит warning про то, что str*** все такие не безопасные, ой-ой. Каждый раз теперь приходится дефайн добавлять. Во-вторых, если использовать эти _s фукции, придётся тащить за собой новый рантайм, а это ещё хуже.
C++ вообще опасный язык изначально.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Аргументы функций wcscpy_s, wcscat_s / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]