![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
adejneka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 8.7.2005 Где: Москва, Россия Репутация: 2 Всего: 11 |
Объявления переменных, перемешанные с операторами, и массивы переменной длины допускаются в ISO C99. |
|||
|
||||
Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
V.A.KeRneL |
|
|||
![]() Vadim A. Kazantsev ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 3.12.2006 Где: Moscow, Russia Репутация: 7 Всего: 14 |
Конечно, НЕТ! Но и использовать такие новомодные фишки, забивая на предыдущий стандарт и версию компилятора, как это делает doomik, я слитаю, тоже НЕправильно. Потому как, например, лучший GCC для чистого C -- 2.95. Это сообщение отредактировал(а) V_A_KeRneL - 25.12.2006, 11:16 -------------------- «C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы» ---/)/)---(\.../)---(\(\ --(':'=)---(=';'=)---(=':') (")(")..)-(").--.(")-(..(")(") |
|||
|
||||
V.A.KeRneL |
|
||||||
![]() Vadim A. Kazantsev ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 3.12.2006 Где: Moscow, Russia Репутация: 7 Всего: 14 |
Есть такой термин: «магическое число». Это такие числа, которые употребляются в программе, хотя естественно не должны, т.к. ничего не говорят сами по себе о природе своего происхождения. Их надо заменять на «символьные константы». Например, в данном случае, лучше было бы написать не
, а
, предварительно подключив <limits.h>. И тогда бы ты, как раз, не ошибся на единичку: INT_MIN == -2,147,483,648, а не -2,147,483,647. Это сообщение отредактировал(а) V_A_KeRneL - 28.12.2006, 16:02 -------------------- «C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы» ---/)/)---(\.../)---(\(\ --(':'=)---(=';'=)---(=':') (")(")..)-(").--.(")-(..(")(") |
||||||
|
|||||||
Denzel666 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.12.2006 Где: Дзержинск Репутация: -1 Всего: нет |
Спасиба за ответы...
|
|||
|
||||
Rockie |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 13 Всего: 31 |
?! ![]() интересно, где такой массив создастся? в стеке? adejneka, а как это? -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
V.A.KeRneL |
|
|||
![]() Vadim A. Kazantsev ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 3.12.2006 Где: Moscow, Russia Репутация: 7 Всего: 14 |
adejneka, Вы не совсем корректно выразились и, поэтому, вполне логично, что некоторые Все превратно поняли. Правильно было бы написать, что стандарт C99 допускает не «массивы переменной длины», а «массивы, длина которых [при инициализации] задаётся переменной». -------------------- «C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы» ---/)/)---(\.../)---(\(\ --(':'=)---(=';'=)---(=':') (")(")..)-(").--.(")-(..(")(") |
|||
|
||||
Rockie |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 13 Всего: 31 |
V_A_KeRneL, ну да, из примера понятно о чем речь. adejneka, а можно ссылку? мне действительно непонятно, где создастся такой массив. -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
adejneka |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 8.7.2005 Где: Москва, Россия Репутация: 2 Всего: 11 |
Массивы, длина которых задается неконстантным выражением, создаются в стеке. Во многих старых компиляторах С была псевдофункция alloca, делавшая примерно то же самое (для одномерных массивов), но с другим синтаксисом:
Этот код на моей машине транслируется в
Операторы, перемешанные с объявлениями:
|
||||||
|
|||||||
Rockie |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 13 Всего: 31 |
adejneka, чудеса прям
![]() -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
Pete |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 318 Регистрация: 5.1.2006 Где: Москва Репутация: 7 Всего: 12 |
-------------------- Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу) Не откладывай на завтра то, что можешь сделать сегодня. (Пословица) А теперь выпишем точное значение числа пи... (Препод) Жахни, Пендальф! © Гоблин |
|||
|
||||
Rockie |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 13 Всего: 31 |
вот-вот. если честно, непонятно как она вообще работает. память ведь для процесса imho отводится заранее
-------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
adejneka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 8.7.2005 Где: Москва, Россия Репутация: 2 Всего: 11 |
Надеюсь, под "памятью для процесса" Вы имеете в виду "фрейм стека для вызова функции", а не "кучу для процесса"? На x86 `alloca' можно реализовать, например, так: фрейм стека разбивается на две части - статическую, содуржащую локальные переменные, и динамическую. Статическая часть размещается в начале фрейма, указатель на ее начало помещается в EBP. Динамическая часть размещается после статической, указатель на ее конец помещается в ESP. `alloca' уменьшает ESP и возвращает его новое значение. Доступ к аргументам функции и локальным переменным осуществляется с фиксированным на этапе компиляции смещением от EBP. |
|||
|
||||
Rockie |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 13 Всего: 31 |
с кучей понятно, вроде такие массивы и называются динамическими. А имею в виду вот этот:
а к примеру так случайно нельзя по стандарту ISO C99 делать?
В любом случае сведения очень интересные, за что и дал по репе ![]() -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |