История изменений
Исправление 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 будет предваряться кодом копирования массива ей на стек. это тупо излишне. потому что таких копирований будет столько, сколько раз вызывается функция.
потому делают передачей адреса, и копированием изнутри. ты ж не знаешь как устроен самый простой компилятор. садись неуд.