Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Union
17 / 17 / 2
Регистрация: 16.08.2010
Сообщений: 252
#1

Вопрос по функциям - C++

21.08.2011, 18:56. Просмотров 471. Ответов 4
Метки нет (Все метки)

Есть функция:
C++
1
int fun(char wob[], unsigned char s, char name[255], char opis[255], uint32_t code) {}
Я вызываю её в одном месте приложения:
C++
1
int res = fun(wob, s, name, opis, code);
В результате выполнения функция fun заполняет передаваемые переменные разными значениями и перед return в ней самой я это проверяю, она работает.
Но в коде программы, после вызова
C++
1
int res = fun(wob, s, name, opis, code);
тоже делаю проверку, и заполнены там уже только wob, name, opis. А к примеру code всегда 0. Почему так может быть?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2011, 18:56     Вопрос по функциям
Посмотрите здесь:

Вопрос по функциям - C++
Вопрос по функции. мне надо, чтобы моя функция "proverka" принимала значение переменной boo. но на простое присвоение компилятор...

Вопрос по функциям - C++
Скажите, если у функции в заголовке прописано, что она возвращает значение int: int function(...) { ...} То могу ли я пытаться...

Вопрос по встраиваемым функциям - C++
В книге прочитал, что если объявить функцию как inline, то код самой функции при компиляции копируется в главную программу, а в конце...

Вопрос по классам и функциям - C++
Здравствуйте, вообщем мне надо реализовать примерно такое дело: имеется класс the_class нужно чтобы у каждого экземпляра была...

Вопрос по функциям класса - C++
class vector { private: double x; double y; double z; public: vector(); vector(double a, double b, double c); ...

Алюанский вопрос по функциям - C++
Господа и прекрасные дамы...!!! Решил заняться программированием на досуги...книжки умные почитал..примеры освоил.. Но остановился...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
villu
202 / 202 / 4
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
21.08.2011, 18:58     Вопрос по функциям #2
C++
1
int fun(char wob[], unsigned char s, char name[255], char opis[255], uint32_t &crcname) {}
так сделай.
то есть &crcname
Union
17 / 17 / 2
Регистрация: 16.08.2010
Сообщений: 252
21.08.2011, 19:01  [ТС]     Вопрос по функциям #3
ох уж эти указатели... спасибо
Gera777
4 / 4 / 1
Регистрация: 09.07.2010
Сообщений: 12
21.08.2011, 19:05     Вопрос по функциям #4
Принято передавать объекты по ссылке или через указатель. Через указатель пользуются редко, потому что постоянно нужно разыменовывать. А вот через ссылку удобно.
Например, если хочешь, чтобы в параметре функции что-то выводилось, пишем
C++
1
2
3
4
void f(int& result)
{
    result = 3;
}
А если не хочешь вывода, то
C++
1
2
3
4
void f(const int& not_result)
{
    not_result = 3;//error
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2011, 17:37     Вопрос по функциям
Еще ссылки по теме:

Подскажите по функциям. - C++
Имеется такой код. #include <iostream> #include <locale> using namespace std; int fib(int n); int main() { setlocale...

Задача по функциям - C++
Разработать функцию типа float, что возвращает абсолютное значение разници первого и второго аргументов.

Расписать по функциям - C++
Я совершенный новичок. Начали проходить функции, решил задачу, осталось выписать ее по функциям. Подсобите кто опытный, что бы я в...

Консультация по функциям - C++
Подскажите что это за две функции и что за аргументы у второй? cin.clear(); cin.ignore(256, '\n');


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Сыроежка
Заблокирован
22.08.2011, 17:37     Вопрос по функциям #5
Цитата Сообщение от Union Посмотреть сообщение
Есть функция:
C++
1
int fun(char wob[], unsigned char s, char name[255], char opis[255], uint32_t code) {}
Я вызываю её в одном месте приложения:
C++
1
int res = fun(wob, s, name, opis, code);
В результате выполнения функция fun заполняет передаваемые переменные разными значениями и перед return в ней самой я это проверяю, она работает.
Но в коде программы, после вызова
C++
1
int res = fun(wob, s, name, opis, code);
тоже делаю проверку, и заполнены там уже только wob, name, opis. А к примеру code всегда 0. Почему так может быть?
Потому что вы параметры s и code объявили как параметры, аргументы для которых передаются по значени. То есть создается копия исходныъ аргументов при вызове вашей функции. Объявление вашей функции семантически эквивалентно следующему

C++
1
int fun(char wob[], unsigned char s, char name[255], char opis[255], uint32_t code) {}
C++
1
2
3
4
5
6
7
8
9
10
int fun()
{
    char wob[];
    unsigned char s;
    char name[255];
    char opis[255];
    uint32_t code;
 
    ..
}
.То есть параметры функции являются локальными для нее переменными, которые инициализируются значениями аргументов при ее вызове. По завершению работы функции все локальные переменные удаляются.
Yandex
Объявления
22.08.2011, 17:37     Вопрос по функциям
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru