170 похожих чатов

#_s #MSVC Прикольно! Речь о не(совсем)стандартных функциях С из стандартной библиотеки

CRT, имеющих суффикс _s , и предназначенных для более безопасного использования приёмного буфера с контролем переполнения.

Я только допёр до этого вот сейчас, что они на самом деле являются шаблонными функциями на С++!
Для чистого С! На С++ !

Да блин, как же они это компилируют? Находу переключают режим компиляции с С на С++ и обратно?
(вопрос риторический)

char buf[2048];
va_list vl;
va_start(vl, format);
vsprintf_s(buf, format, vl);
va_end(vl);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
_Success_(return >= 0)
int, vsprintf_s,
_Post_z_ char, _Buffer,
_In_z_ _Printf_format_string_ char const*, _Format,
va_list, _ArgList
)

#define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
extern "C++" \
{ \
template <size_t _Size> \
inline \
_ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
{ \
return _FuncName(_Dst, _Size, _TArg1, _TArg2); \
} \
}

8 ответов

8 просмотров

чего?

вообще у тебя есть сорцы crt на компе) ищи давай и смотри как сделано

Насколько помню, MSVC не особо любит чистый Си, и я бы не ждал от них строгой конформности стандарту))

Ilya-Zviagin Автор вопроса
Stanislav Ershov
и шо?

ничего, просто прикольно...

Ilya Zviagin
ничего, просто прикольно...

ну, если ты пропустил то msvc stl испльзует boost math :)

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

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
52
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
буквально один оставшийся вопрос при выполнении строчки mov eax, 5 операнд "5" будет присутствовать где-либо в памяти (любой), кроме как в памяти блока .code? подвопрос: как...
12
Всем ку. Подскажите, если задекларировал массив так: int arr[10] = {1, 2, 3, 4}, то в arr[4] будет мусор или нуль?
Sasha K
14
я не понимаю mov [r11+8],rcx и прочие. мы записываем значение из rcx, куда?
Bor
15
у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
5
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
А какие расширения активно используются в промышленности? Именно идейные, по типу гадт, а не всякие оверлоадедстрингс
Степан
11
у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше): - "п1" --- виртуальный адрес, то есть тот, который ресолвится в "п...
Toideng
3
Guys Who’s kurdish on this group?
Hiwa Amiri
11
Карта сайта