эти функции принимают разные аргументы!
Для компиляторов MS доступны две разные версии. Взгляните здесь .
Это соответствует стандарту ANSI. Но я думаю, что это не отвечает на ваш вопрос. Я пропущу это некоторое время и скорее расскажу, как можно добиться единообразия.
они работают с _UNICODE и без него?
Вам лучше использовать «безопасные строковые функции» согласно рекомендациям MS. Смотрите это . Используйте `_stprintf_s ', и я думаю, что вы обойдете свою проблему.
Кто-то дурак?
РЕДАКТИРОВАНИЕ: Я так не думаю. У меня нет под рукой Обоснования, чтобы дать вам ответ. Я опубликую обновление, когда получу в руки что-то более конкретное. А пока посмотрим на объяснение М.С.альтерса.
Любопытно, что среда выполнения MS C не не претендует на совместимость со стандартом ISO.
Отказ от ответственности: я не защищаю гиганта Редмонда, а только указываю на вещи, которые кажутся мне странными!