Не могу вернуть указатель из функции
22.10.2014, 06:20
|
|
|
Прописка
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от Boba_spb
|
|
Интересно, зачем тогда оператор GOTO
|
В ассемблере без goto решительно никак. В Си - легко, но, возможно, дань традиции, может какие-то требования регистрирующих организаций. Хотя бывают очень редкие случаи, когда использование goto внутри циклов позволяет избежать введения новых переменных и/или нагромождения кода, который скрывает вожделенную его прозрачность.
Сообщение от hacker7
|
Формальная ошибка:
int *readDateTime() {
int DateTime[7];
.........
return DateTime;
тип функции д б не указатель на целое, а указатель на массив целых или, если угодно указатель на указатель на целое нефиг писать на с
или писать, нейтрализуя его паскудство. а то у вас там таааакие сдвижки....
|
Нет никакой ошибки. Вам-бы почитать сначала, прежде, чем излагать своё суждение о том, о чём представления не имеете. DateTime и есть указатель на целое, или на массив целых, в Си это неважно, вопрос в том, как этот указатель возвращать. В данном случае это DateTime, для переменной int Var, это будет &Var. А указатель на указатель это уже ** int и обращаться с ним нужно соответственно. Вы может писать на чём угодно, но говоря "паскудство", то хотя-бы ознакомьтесь с вопросом и аргументируйте внятно.
Сообщение от Boba_spb
|
О хакеры нынче какие !!! Интересно, чем указатель на целое отличается от указателя на массив целых? Иль Вы думаете что элемненты массива разбросаны по памяти, и поэтому надо использовать для массива указатель на указатели, которые указывают на элементы массива
|
Просто человек когда-то, возможно, пробовал писать на Паскале.
Последний раз редактировалось shindax; 22.10.2014 в 06:23.
|
|
|
|
22.10.2014, 09:50
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от shindax
|
|
В ассемблере без goto решительно никак. В Си - легко, но, возможно, дань традиции, может какие-то требования регистрирующих организаций.
|
Оператор GOTO требует хорошего понимания в том, что будет происходить в случае его применения. Поэтому не советуют его применять.
И когда Вы применяете многие другие операторы, то ,знайте, что Вы применяете обвертку от GOTO, которую сделали специально для "малышей" что б по своему недомыслию не натворили дел.
Например, оператор SWITCH - осуществляет GOTO на метки CASE, BREAK из цикла - GOTO на первый оператор за циклом. А операторы FOR? WHILE? В них нет скрытых GOTO? Я уж не говорю, сколько "GOTO" используется на асме. Кесарю - кесарево, слесарю - слесарево !!!
|
|
|
|
22.10.2014, 10:52
|
|
|
Прописка
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от Boba_spb
|
Оператор GOTO требует хорошего понимания в том, что будет происходить в случае его применения. Поэтому не советуют его применять.
И когда Вы применяете многие другие операторы, то ,знайте, что Вы применяете обвертку от GOTO, которую сделали специально для "малышей" что б по своему недомыслию не натворили дел.
Например, оператор SWITCH - осуществляет GOTO на метки CASE, BREAK из цикла - GOTO на первый оператор за циклом. А операторы FOR? WHILE? В них нет скрытых GOTO? Я уж не говорю, сколько "GOTO" используется на асме. Кесарю - кесарево, слесарю - слесарево !!!
|
Я в курсе, что во что генерится.  Но не надо класть все яйца в одну корзину. Что в switch, что в while, все генерируемые goto ведут либо в конец цикла, либо в его тело по конкретным адресам. Goto в чистом виде может дать переход в любую точку функции, в обход всей логики, чем и может доставить трудноуловимые ошибки. Так-что не надо про кесаря и про слесаря. В хорошо написаной программе на Си операторов goto или нет совсем, или их мало.
Последний раз редактировалось shindax; 22.10.2014 в 10:54.
|
|
|
|
22.10.2014, 11:25
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от shindax
|
|
В хорошо написаной программе на Си операторов goto или нет совсем, или их мало.
|
Хорошо написанная программа - это программа, которая работает без ошибок и выполняет все функции так, как от нее требуется !!!
Поэтому пишу так, как мне удобнее быстрее написать и отладить - все зависит от задачи. Вы же пользуете массу подпрограмм из библиотек и понятия не имеете кем, как и на чем они написаны. И есть там GOTO или нет Вам не ведомо.
|
|
|
|
22.10.2014, 11:58
|
|
|
Прописка
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от Boba_spb
|
|
...Вы же пользуете массу подпрограмм из библиотек и понятия не имеете кем, как и на чем они написаны. И есть там GOTO или нет Вам не ведомо.
|
Это у Вас, видимо, видение какое-то было, что и как я пишу?
Сообщение от Boba_spb
|
|
Хорошо написанная программа - это программа, которая работает без ошибок и выполняет все функции так, как от нее требуется !!!
|
Да кто-ж против.
Сообщение от Boba_spb
|
|
Поэтому пишу так, как мне удобнее быстрее написать и отладить - все зависит от задачи.
|
Пишите на чём и как хотите, я на за что не ратую и никого учить не собирался.  Всё зависит для чего, или кого Вы это пишете. Если для себя, то никому до этого нет дела, а если где-то на производстве, или для какой-то бытовой техники, то тут уже не всё так просто.
Вот, кстати, статья про стили программирования, про "удобнее", про "быстрее" и т.п.:
http://anti-toyota.narod.ru/2013-black-november.html
Последний раз редактировалось shindax; 22.10.2014 в 12:24.
|
|
|
|
22.10.2014, 14:43
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сильная статья - особенно про 11000 глобальных перемнных !!!. (при 48 кб Озу в процессоре)
А сколько там глобальных переменных в управлении ABC - даже представить страшно. А в других контроллерах? Блин - на "галстуке" потащу сегодня свою toyotу домой. И срочно ее продам !!!
Ну, хорошо, я занимаюсь программированием уже почти 40 лет, в областях где требуется высочайшая надежность и знаю что при получение массива из пула могу его не получить из-за фрагментации пула или нарваться на чудеса сборки мусора.
Поэтому только статический !!! массив и четкое разделение доступа к нему.
Ну как бы и заслужили некоторое доверие
|
|
|
|
22.10.2014, 19:38
|
|
|
Прописка
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от Boba_spb
|
|
...Ну, хорошо, я занимаюсь программированием уже почти 40 лет...
|
Это что-же Вы программировали 40 лет назад? МЭСМ? БЭСМ?
|
|
|
|
22.10.2014, 19:43
|
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от shindax
|
|
Это что-же Вы программировали 40 лет назад?
|
Считаете, что нечего было программировать? Семидесятые годы - начиная от Наири-2 и прочих Проминей, до ЕС-ЭВМ. Поинтересуйтесь историей выч.техники.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
22.10.2014, 22:30
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Последовательность была примерно такая PDP11, СМ3, СМ4, СМ1420, СМ1600 и закончилось на СМ1700. (попутно электргника 60 и электроника 85 и электроника 100/25). Ну уж а затем перешли на интеловские процессоры. Естественно и свой процессор вот на такой штуке был у нас в 80ые.
А поскольку жизнь идет по спирали, то похоже придется работать с такими
|
|
|
|
22.10.2014, 22:35
|
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Не помню нашу Электронику 100 - какая модель - но она была на транзисторах. Гы! И было, таки, чего там программировать!
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:05.
|
|