18 / 18 / 5
Регистрация: 08.10.2009
Сообщений: 94
|
|||||||||||
1 | |||||||||||
Вопрос по функциям16.03.2010, 23:12. Показов 1216. Ответов 10
Метки нет (Все метки)
Скажите, если у функции в заголовке прописано, что она возвращает значение int:
0
|
16.03.2010, 23:12 | |
Ответы с готовыми решениями:
10
Вопрос по функциям Вопрос по функциям Вопрос по классам и функциям Вопрос по функциям класса |
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
||||||
16.03.2010, 23:15 | 2 | |||||
А не лучше что нибудь типа такого сделать:
1
|
18 / 18 / 5
Регистрация: 08.10.2009
Сообщений: 94
|
|
16.03.2010, 23:20 [ТС] | 3 |
мне не нужно, чтобы функция вернула число (она и при своей нормальной работе может вернуть любое число в диапазоне int)
мне нужно, чтобы функция вернула что-то отличное от числа (как NULL), и чтобы в main() я мог вставить проверку a=funt(); if (a = NULL)....
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|||||||||||||||||||||
16.03.2010, 23:51 | 5 | ||||||||||||||||||||
Вопрос, признаться, поставил меня в тупик.
Я провёл такое исследование. Пишу:
Теперь вспоминаю, что NULL уже ГДЕ-ТО ОПРЕДЕЛЕНА. Ищу этот файл, он называется windef.h, открываю, нахожу там вот это:
Ответ: Нельзя. Непонятно, почему...
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
17.03.2010, 22:10 | 6 |
NULL вообще-то много где может быть определен - не только в windef.h
И вообще я бы не занимался переименованием такой специфической вещи как NULL Если у функции написано int function(), то ничего другого кроме int функция вернуть просто не может. То есть NULL будет тем или иным образом преобразован в int, представлен в виде числа и все равно возвращаемое значение будет int. Или же код просто не скомпилируется.
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
17.03.2010, 22:22 | 7 |
м... Ну, так Вы, наверное, знаете уже, может ответите? ПОчему когда в тексте проги пишешь
#define NULL 0, прога компилится нормально и возвращается NULL как int А когда #define NULL 0 прописано в подключаемом файле, не компилится? Я вот не знаю, в чём дело, вынужден эксперементировать, изголяться всяко, дабы до ответа докопаться...
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
18.03.2010, 09:11 | 8 |
Сообщение от Neonjke
он используется, когда функция возвращает указатель (любого порядка) для int используется EOF scanf, getchar, fputs возвращают EOF в случае ошибки printf возвращает отрицательное число все эти функции возвращают int fgets возвращает NULL она возвращает char *
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
19.03.2010, 07:58 | 9 |
Так что если потребуется вернуть -1, то будут проблемы - различить -1 и EOF не получится. Добавлено через 38 секунд
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
19.03.2010, 08:42 | 10 |
да, EOF меньше нуля
ещё бывает isdigit() ноль в случае, когда ложь и не ноль, когда истина бывает ещё errno случай с strtol, при переполнении она возвращает LONG_MAX, но и правильный результат тоже может быть LONG_MAX проверить это можно через errno - глобальная переменная а конец файла (когда getc возвращает EOF) проверяют через ferror(), ещё feof() эти флажки хранятся в структуре FILE
0
|
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
19.03.2010, 17:37 | 11 |
А бывает ещё std::pair<bool, int>, чтобы избежать извращений.
0
|
19.03.2010, 17:37 | |
19.03.2010, 17:37 | |
Помогаю со студенческими работами здесь
11
Вопрос по встраиваемым функциям Алюанский вопрос по функциям Задачи по функциям. Объясните задачу по функциям) вопрос по функциям в Mathcad Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |