Любой программист на C, который работал более недели, столкнулся с сбоями, вызванными вызовом printf
с более подробными спецификаторами формата, чем фактические аргументы, например:
printf("Gonna %s and %s, %s!", "crash", "burn");
Однако есть ли подобные плохие вещи, которые могут произойти, когда вы передаете слишком много аргументов printf?
printf("Gonna %s and %s!", "crash", "burn", "dude");
Мое знание сборки x86/x64 приводит меня к мысли, что это безвредно, хотя я не уверен, что нет какого-либо граничного условия, которое мне не хватает, и я понятия не имею о других архитектурах. Гарантируется ли это условие безвредным, или существует ли здесь потенциально аварийная ловушка?