LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

Это и есть боксинг. Указатель это тот самый указатель на объект-обёртку.

чудила, какой еще «обьект обертка». просто в памяти лежит например стурктурная константа - массив из 10 интов, или на стеке обьявлен такой массив.

и его передают в функцию по адресу. просто потому, что это так код вызова будет меньше. И ФСЕ!

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

на псевдоязыке

fun arr10 (fa: array[10] of int)
///такая функция будет получать адрес массива
///чтобы тут засосать его во внутренний буфер на стеке.
///просто потому что копировать изнутри  экономней по месту, чем снаружи
{
...
}

fun test() {
  var arr: array [10] of int; //на стеке место под 10 интов.
...
  arr10(arr); ///тут просто функции дадут адрес arr, безо всяких "оберток"
}

ононим, где обертки!!!??? обьекты-обертки тут - в твоей беспокойной голове. и никакого термина «боксинг» тут не возникает.

Боксинг совсем из другой оперы, в которую ты никак не можешь врубиться. Я уже писал для чего. Ищи сам зачем он в жаве или шарпе.

И передавать ты должен 10интов. Не обёртку, а именно 10интов/5интов.

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

Потому делают передачей адреса, и копированием изнутри. Ты ж не знаешь как устроен самый простой компилятор. Тебе кажется в этом всем есть глубокий философский смысл…садись неуд.

Исправление alysnix, :

Это и есть боксинг. Указатель это тот самый указатель на объект-обёртку.

чудила, какой еще «обьект обертка». просто в памяти лежит например стурктурная константа - массив из 10 интов, или на стеке обьявлен такой массив.

и его передают в функцию по адресу. просто потому, что это так код вызова будет меньше. И ФСЕ!

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

на псевдоязыке

fun arr10 (fa: array[10] of int)
///такая функция будет получать адрес массива
///чтобы тут засосать его во внутренний буфер на стеке.
///просто потому что копировать изнутри  экономней по месту, чем снаружи
{
...
}

fun test() {
  var arr: array [10] of int; //на стеке место под 10 интов.
...
  arr10(arr); ///тут просто функции дадут адрес arr, безо всяких "оберток"
}

ононим, где обертки!!!??? обьекты-обертки тут - в твоей беспокойной голове. и никакого термина «боксинг» тут не возникает.

Боксинг совсем из другой оперы, в которую ты никак не можешь врубиться. Я уже писал для чего. Ищи сам зачем он в жаве или шарпе.

И передавать ты должен 10интов. Не обёртку, а именно 10интов/5интов.

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

потому делают передачей адреса, и копированием изнутри. ты ж не знаешь как устроен самый простой компилятор. садись неуд.

Исходная версия alysnix, :

Это и есть боксинг. Указатель это тот самый указатель на объект-обёртку.

чудила, какой еще «обьект обертка». просто в памяти лежит например стурктурная константа - массив из 10 интов, или на стеке обьявлен такой массив.

и его передают в функцию по указателю. просто потому, что это так код вызова будет меньше. И ФСЕ!

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

на псевдоязыке

fun arr10 (fa: array[10] of int)
///такая функция будет получать адрес массива
///чтобы тут засосать его во внутренний буфер на стеке.
///просто потому что копировать изнутри  экономней по месту, чем снаружи
{
...
}

fun test() {
  var arr: array [10] of int; //на стеке место под 10 интов.
...
  arr10(arr); ///тут просто функции дадут адрес arr, безо всяких "оберток"
}

ононим, где обертки!!!??? обьекты-обертки тут - в твоей беспокойной голове. и никакого термина «боксинг» тут не возникает.

Боксинг совсем из другой оперы, в которую ты никак не можешь врубиться. Я уже писал для чего. Ищи сам зачем он в жаве или шарпе.

И передавать ты должен 10интов. Не обёртку, а именно 10интов/5интов.

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

потому делают передачей адреса, и копированием изнутри. ты ж не знаешь как устроен самый простой компилятор. садись неуд.