Зачем передавать переменные-параметры в функцию, если можно писать глобальное объявление переменных?
1. Чтобы избавлять от дублирования (ну вообще это сам смысл функций)
2. Чтобы удобнее работать с этими функциями (сразу видишь, что функция от тебя ждёт)
3. Чтобы нормально работало в многопоточной среде. (глобальные переменные и многопоток не совестимы)
Ну вот например менее абcтрактный пример:
int sum(int a, int b) { // всё отлично, всё понятно
return a + b;
}
int a,b;
// Каким образом мы поймём, что надо перед вызовом sum задать какое-то значение переменным a и b?
// sum и её "параметры" a и b никак не связаны
int sum() {
return a + b;
}
int sum() { // а как в этом случае нам сложить две переменные? Как задать значения a и b??????
int a,b;
return a + b;
}