default-аргумент - это то, о чем мечтали программисты C: чтобы иногда не надо было при вызове задавать некоторые параметры, которые в этом случае должны иметь некоторое "обычное" значение.
Желание программистов C контролировать типы параметров в define-ах породило в C++ inline-функции. Такая функция - это обычный define с параметрами, только не надо мучиться с символами "\" и проверяются типы.
Так же MSDN мне сказал
This error can be generated as a result of compiler conformance work that was done for Visual C++ 2005: all declarations must explicitly specify the type; int is no longer assumed.
Особо меня заинтересовало " all declarations must explicitly specify the type; int is no longer assumed."
Я предположу,что то самое "...породило...." как раз и отображается в записи MSDN.
В общем все это приводит меня к мысли о том,что отсутствие default-аргументов заставляет четко обьявлять все аргументы на С,а в С++ уже можно не обьявлять,но для того чтобы все корректно работало надо чтобы default-аргумент имел начальное значение.
Например
int MyFunc(int a, int b, int c=12);//обьявление
result = MyFunc(1, 2);//вызов
Но при этом реализована четкая проверка и контроль типов.
В результате что мы имеем....
На С++ мы можем обьявить функцию(прототип функции) с дефолтным аргументом и потом вызвать без него,но при этом происходит намного более строгая проверка типов на соответствие значений,тобиш, ссылаясь на предыдущий пример , void не может возвращать значение по своей сути.
А на С другая картина,мы не имеем четкого контроля и проверки типов.Тем самым мы имеем возмохность в переменную обьявленного типа передавать то что не принадлежит данному типу.Вот тут и проходит пример,который ты приводил.
В общем подведя итог я прихожу к выводу что в С надо четко обьявить все типы переменных и вызывать их все,но при этом не обязательно их соответствие,не знаю,наверно компилятор сам подстраивает под нужный тип....
А если чесно я уже запутался..........
Цитата
почему я задал именно такой вопрос
Ну почему именно int ,а не какой то другой тип, потому что я в предыдущем посту скидывал вроде как прототип этой функции.а дальше уже идет четкий контроль,а ошибку выдает потому что дефолт аргумент должен
обязательно иметь значение,а его нет.
Блин чем больше пишу,тем меньше начнаю понимать что хотел сказать.