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 ответов

24 просмотра

чего?

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

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

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта