Другие языки программирования и технологии
Вопрос насчет объявления и параметра функции в C++
Если функция была объявлена как void func(int) и определена как void func(int k). То это значит, что на месте k может быть другое имя переменной, но тот же тип и число параметров? А если функция была объявлена как void func(int k), а определенна как void func(int). То смысл от такого определения? Ведь параметр без имени, а значит нет возможности получить его значение. Или это получается сделать через указатели и работоспособность такой записи оставлена для них? Так как у параметра нет имени, но видимо есть адрес.
Работоспособность такой записи оставлена для того, что бы просто не использовать этот аргумент в теле функции. К примеру, если нужна функция-callback, сигнатура которой жестко задана, но в ней не нужно использовать данные аргумент, или есть функция, параметром которой служит другая функция опять же с аргументом, но нужно создать передать функцию, где этот аргумент не используется:
#include <iostream>
// функция, аргументом которой является другая функция с аргументом
void caller(void(*cb)(int)) { cb(5); }
// функция, для передачи в caller
void f(int) { std::cout << "f\n"; } // аргумент в теле не используется
int main() { caller(f);return 0; }
Конечно, можно написать и имя аргумента
void f(int k) { std::cout << "f\n"; }
но если задан жесткий уровень контроля за кодом во время компиляции (уровень предупреждений) , то при компиляции получим неприятный warning. К примеру, компилятор g++ ругнется:
warning: unused parameter 'k' [-Wunused-parameter]
К тому же, если твой код будут изучать другие люди, то запись аргумента без имени явно покажет им, что данный аргумент не используется в функции, т. е. ты эту функцию сознательно именно так реализовал и не допустил ошибок.
#include <iostream>
// функция, аргументом которой является другая функция с аргументом
void caller(void(*cb)(int)) { cb(5); }
// функция, для передачи в caller
void f(int) { std::cout << "f\n"; } // аргумент в теле не используется
int main() { caller(f);return 0; }
Конечно, можно написать и имя аргумента
void f(int k) { std::cout << "f\n"; }
но если задан жесткий уровень контроля за кодом во время компиляции (уровень предупреждений) , то при компиляции получим неприятный warning. К примеру, компилятор g++ ругнется:
warning: unused parameter 'k' [-Wunused-parameter]
К тому же, если твой код будут изучать другие люди, то запись аргумента без имени явно покажет им, что данный аргумент не используется в функции, т. е. ты эту функцию сознательно именно так реализовал и не допустил ошибок.
В прототипах функций, при объявлении, указывать имена формальных параметров не обязательно. Это следует делать в определении функция.
Для использования функции нужно её объявить, определить и вызвать. Например:
#include <iostream>
void func(int, int); // объявление
int main() {
int a = 5, b = 7;
func(a, b); // вызов
return 0;
}
void func(int x, int y) { // определение
std::cout << x + y;
std::cin.get();
}
> интегральная переменная если дословно перевести
а float - военно-морская, блядь!
Для использования функции нужно её объявить, определить и вызвать. Например:
#include <iostream>
void func(int, int); // объявление
int main() {
int a = 5, b = 7;
func(a, b); // вызов
return 0;
}
void func(int x, int y) { // определение
std::cout << x + y;
std::cin.get();
}
> интегральная переменная если дословно перевести
а float - военно-морская, блядь!
Поток сознания...
В параметре ты указываешь тип и имя переменной. Как же тупо с интом работать)
с просто int не сработает int означает интежер, интегральная переменная если дословно перевести. И лучше писать тогда полностью integer
Похожие вопросы
- Как передать функцию в качестве параметра другой функции на C++?
- Оконное приложение на WinAPI, вопрос про параметры функции WndProc. Язык программирования Си.
- Виртуальные функции в c#,зачем они?
- Вопрос про возвращаемое значение из функции в С++.
- Объясните, что происходит в () функций в c++
- Аргументы и параметры функции-это синонимы?
- Описать функцию в c++, которая находит среднее арифметическое значение всех элементов сформированного непустого списка
- функция в C++
- Вопрос насчет изучения языков (внутри)
- Вопрос насчет цвета