LINUX.ORG.RU

Сейчас тебе лучше сказать, что ты пилишь интерпретатор для какого-нибудь убер-язычка.

buddhist ★★★★★
()
Ответ на: комментарий от arturpub

в функции так интенсивно работают с массивом , что общее пенальти за все разименования больше чем пенальти на однократное копирование немаленького массива.

qulinxao ★★☆
() автор топика
Ответ на: комментарий от buddhist

да не.

скорее подражаю в битолюбии авторов STL и прочей экономии микросекунд на операции.

т.е обоснование например такое инлайнить код не возможно , а вот снизить затраты при интенсивной работе с куском памяти на исключение(вынесение в предпосчитаные) всех(акромя критериев завершения) инвариантов из внутрених циклов - в том числе и подтягивание куска данных доступного через несколько косвенностей до уровня минимально возможного на этой железке числа разименнованийю

qulinxao ★★☆
() автор топика
Ответ на: комментарий от buddhist

ну и если уж совсем отряхивать пыль.

у Сей же стандартный способ передачи аргументов @вызывающий чистит стек@ поэтому если пара функций работает над одним участком памяти то «экономия копирований» :) если компилятор это использует.

qulinxao ★★☆
() автор топика
Последнее исправление: qulinxao (всего исправлений: 1)
Ответ на: комментарий от qulinxao

Это может быть только в случае volatile vs. non-volatile, а индексация всегда идет по базе, будь то текущий фрейм, предыдущий, или адрес в куче — ну невозможна здесь разница в пенальтях. Ты его (копию) можешь даже указателем на указатель на ... передать, все равно оптимизатор разыменует до базы и будет от нее работать.

arturpub ★★
()

Я только одну причину таких странных желаний мог бы понять: подсказать компилятору, что переданный функции массив может изменяться только самой этой функцией.

anonymous
()
Ответ на: комментарий от qulinxao

ведь аксиома «в С всё передаются по значению» очевидно верна.

нет в PureC никаких «аксиом». Этот ЯП был придуман для практического использования, а не для обучения и не для доказательств каких-то теорем. C просто сделали удобным. Передавать int по значению удобно, а массивы — по ссылке. Вот и всё.

Не ищи скрытый смысл там, где его нет.

emulek
()
Ответ на: комментарий от qulinxao

а вот мракобесное «вси массивы это указатель, анафема кто иначе» внушает уважение нашей системе образования.

не повезло тебе с образованием…

emulek
()
Ответ на: комментарий от emulek

Передавать int по значению удобно, а массивы — по ссылке.

Дык, оно ж в ассемблере так и делается, то-то в сях не сильно-то далеко и ушли. Ну и да, копировать огроменные участки памяти туда-сюда тупо для того, "чтобы было", никому нафиг не надо. Вот если действительно возникает необходимость передать в функцию копию массива, чтобы она ее там изменяла как-то и выдавала либо измененную копию, либо просто какие-то данные, делая в конце free(), вот тогда надо копировать.

А Кулиньксяо просто никак не выучит русский язык: более-менее общаться уже вроде как умеет, но мысли свои излагает до сих пор на каком-то китайском.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Дык, оно ж в ассемблере так и делается, то-то в сях не сильно-то далеко и ушли. Ну и да, копировать огроменные участки памяти туда-сюда тупо для того, «чтобы было», никому нафиг не надо. Вот если действительно возникает необходимость передать в функцию копию массива, чтобы она ее там изменяла как-то и выдавала либо измененную копию, либо просто какие-то данные, делая в конце free(), вот тогда надо копировать.

+1

Си вообще разрабатывался как чисто практический язык, без всякого пиетета к теории. И получился кросплатформенный ассемблер, что в те времена было более чем практично.

А Кулиньксяо просто никак не выучит русский язык: более-менее общаться уже вроде как умеет, но мысли свои излагает до сих пор на каком-то китайском.

+1

anonymous
()
Ответ на: комментарий от Eddy_Em

Передавать int по значению удобно, а массивы — по ссылке.

Дык, оно ж в ассемблере так и делается

дык такие CPU у нас. Такая и сишечка.

А Кулиньксяо просто никак не выучит русский язык: более-менее общаться уже вроде как умеет, но мысли свои излагает до сих пор на каком-то китайском.

угу. Яко Магистр Йода. Я так подозреваю что он емакер или ещё какой-то инопланетянин (:

emulek
()
Ответ на: комментарий от emulek

не. Ты безнадёжен.

Да это наверное тот анон, который тут раньше был с ником типа быдлокодер2000 или говнокодер2000, не помню точно, но что-то такое. Он действительно безнадежен.

anonymous
()
Ответ на: комментарий от arturpub

ох ох ох.

такс.

ознакомься(если ещё не) с видами передачи параметров/аргументов.

то, что С переносимый ассемлер (для последовательных машин)- его достоинство.

то , что С не имеет(на фоне остальных языков) скрытых издержек(к чему С++ тоже стремится) тоже.

однако - если синтаксис языка позволяет (ну например для рекурсии) локализацию данных - чёж этим не воспользоватся - вместо вручную либо до либо внутри функции прописывания.

qulinxao ★★☆
() автор топика
Ответ на: комментарий от qulinxao

однако - если синтаксис языка позволяет (ну например для рекурсии) локализацию данных - чёж этим не воспользоватся - вместо вручную либо до либо внутри функции прописывания.

Ты хочешь на каждом рекурсивном вызове заталкивать в стек массивы произвольной длины? ССЗБ, что тут еще сказать.

локализацию данных

Наконец-то мы выяснили, чего ты хотел. С чего ты решил, что твоя «локализация данных» в реальном коде потребуется? Преждевременной оптимизацией заниматься изволим?

anonymous
()
Ответ на: комментарий от qulinxao

Я тебе еще более мракобесную вещь скажу - любая переменная на стеке (а не в регистре) - тоже указатель.

anonymous
()
Ответ на: комментарий от anonymous

Почему эту блядь до сих пор по IP не забанили?

anonymous
()
Ответ на: комментарий от anonymous

Да это наверное тот анон, который тут раньше был с ником типа быдлокодер2000 или говнокодер2000

угу. Но в последнее время он ваще плохой стал.

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.