<bgdev />free

Вход Регистрация

Честита Трета Световна
7

0 1 2 3 4 ....90 91 92 93 94 ....182 183 184 185 186 ....363 364 365 366 367 ....542 543 544 545 546
#65273 (ツ) Stilgar
Създадено на 05.07.2022, видяно: 605 пъти.
Дърти Хари

В Джава, Ц шарп и всички останали изчадия с гарбидж колектър няма такива избори. Само най-простите елементарни типове могат да се предават като валю. Всичко останало е пойнтъри.

За C# това не е вярно, можеш да си сглобиш типове които се предават по value, можеш и да взимаш pointers към тях, дори някои дето по принцип ходят на хийпа можеш да ги накараш да се алокират на стека. Не е сравнимо със C++ където всеки тип можеш да го пляснеш където искаш и да го предаваш както искаш според случая, но определено може ако ти е важно

#65276 (ツ) BIGBUGEX
Създадено на 05.07.2022, видяно: 567 пъти.

И двете сте прави. В С++ се предава като указател всяка структура над 8 байта. Но в такъв случай, извикващата функция е длъжна да алокира ново копие в стека и така да предаде указателя. Сиреч не се различава от предаване би вал.

#65277 (ツ) Дърти Хари
Създадено на 05.07.2022, видяно: 555 пъти.
Stilgar
Дърти Хари

В Джава, Ц шарп и всички останали изчадия с гарбидж колектър няма такива избори. Само най-простите елементарни типове могат да се предават като валю. Всичко останало е пойнтъри.

За C# това не е вярно, можеш да си сглобиш типове които се предават по value, можеш и да взимаш pointers към тях, дори някои дето по принцип ходят на хийпа можеш да ги накараш да се алокират на стека. Не е сравнимо със C++ където всеки тип можеш да го пляснеш където искаш и да го предаваш както искаш според случая, но определено може ако ти е важно

Хм аз останах с впечатлението че всичко що е клас и обект е референтен тип, т.е. указател.

Reference types (C# Reference)

The following keywords are used to declare reference types:

class

interface

delegate

record

C# also provides the following built-in reference types:

dynamic

object

string

#65280 (ツ) Дон Реба
Създадено на 05.07.2022, видяно: 548 пъти.
BIGBUGEX

И двете сте прави. В С++ се предава като указател всяка структура над 8 байта. Но в такъв случай, извикващата функция е длъжна да алокира ново копие в стека и така да предаде указателя. Сиреч не се различава от предаване би вал.

това което казваш ми се струва разумно само при конвенции в които предаването на параметрите е през регистри (мисля че 64 битовите компилатори са така), иначе е само едно излишно дереференсване

#65286 (ツ) BIGBUGEX
Създадено на 05.07.2022, видяно: 532 пъти.
Дон Реба
BIGBUGEX

И двете сте прави. В С++ се предава като указател всяка структура над 8 байта. Но в такъв случай, извикващата функция е длъжна да алокира ново копие в стека и така да предаде указателя. Сиреч не се различава от предаване би вал.

това което казваш ми се струва разумно само при конвенции в които предаването на параметрите е през регистри (мисля че 64 битовите компилатори са така), иначе е само едно излишно дереференсване

Това беше валидно за 32 битов режим. Сега (в 64 битов режим) май всичко което е структура е с референция. Но не съм много сигурен.

#65291 (ツ) Rabin
Създадено на 05.07.2022, видяно: 526 пъти.

Ае неко ползва ли 32 битов режим като наш Жони?

И таа подарената бангия, и предишната бяха 64 битови. Само Наков е 126 битов, с 2 ракии Бургас 63 в джобовете.

#65295 (ツ) Stilgar
Създадено на 05.07.2022, видяно: 512 пъти.
Дърти Хари
Stilgar
Дърти Хари

В Джава, Ц шарп и всички останали изчадия с гарбидж колектър няма такива избори. Само най-простите елементарни типове могат да се предават като валю. Всичко останало е пойнтъри.

За C# това не е вярно, можеш да си сглобиш типове които се предават по value, можеш и да взимаш pointers към тях, дори някои дето по принцип ходят на хийпа можеш да ги накараш да се алокират на стека. Не е сравнимо със C++ където всеки тип можеш да го пляснеш където искаш и да го предаваш както искаш според случая, но определено може ако ти е важно

Хм аз останах с впечатлението че всичко що е клас и обект е референтен тип, т.е. указател.

Reference types (C# Reference)

The following keywords are used to declare reference types:

class

interface

delegate

record

C# also provides the following built-in reference types:

dynamic

object

string

Да, но освен reference types има и value types (декларират се със struct) и си конструираш каквито си искаш типове които по подразбиране се предават по стойност. Най-често срещаният такъв тип е DateTime. В добавка параметрите могат да са ref което ги прави да се предават по референция (демек указател към стека). Това може да се ползва и с value и с reference types например ако имаш m(ref List<string> strings) { strings = null; } и го викнеш като m(ref neshto) после нещото ще е null, а при същото нещо без ref няма да е null (List си е reference type, и по принцип си работи като в Java). Отделно от това има един keyword stackalloc който позволява да алокираш неща на стека, но си има списък от неща за които работи примерно за масиви и спанове не може да го ползваш за всеки тип дето ти хрумне. Отделно на всичко това C# има C++ режим в който имаш буквални указатели със синтаксис от C++, но за това ти трябва unsafe блок и по принцип се гледа с лошо око на употребата на това щото може да направиш C++ бели докато тея неща които изброих преди са направени safe и се разбират с GC-то и имат някакви ограничения все пак за да може да е сигурно че няма да се лийква памет и прочие

#65296 (ツ) Дърти Хари
Последно редактирано на 05.07.2022 от Дърти Хари, видяно: 508 пъти.
Stilgar

Да, но освен reference types има и value types (декларират се със struct) и си конструираш каквито си искаш типове които по подразбиране се предават по стойност. Най-често срещаният такъв тип е DateTime. В добавка параметрите могат да са ref което ги прави да се предават по референция (демек указател към стека). Това може да се ползва и с value и с reference types например ако имаш m(ref List<string> strings) { strings = null; } и го викнеш като m(ref neshto) после нещото ще е null, а при същото нещо без ref няма да е null (List си е reference type, и по принцип си работи като в Java). Отделно от това има един keyword stackalloc който позволява да алокираш неща на стека, но си има списък от неща за които работи примерно за масиви и спанове не може да го ползваш за всеки тип дето ти хрумне. Отделно на всичко това C# има C++ режим в който имаш буквални указатели със синтаксис от C++, но за това ти трябва unsafe блок и по принцип се гледа с лошо око на употребата на това щото може да направиш C++ бели докато тея неща които изброих преди са направени safe и се разбират с GC-то и имат някакви ограничения все пак за да може да е сигурно че няма да се лийква памет и прочие

Ок, прав си. Даже не знаех че ги има такива особенности, никога не са ми трябвали.

#65298 (ツ) Дон Реба
Създадено на 05.07.2022, видяно: 487 пъти.
Rabin

Ае неко ползва ли 32 битов режим като наш Жони?

доста софтуер е 32 битов, 64 битов ти трябва само ако работиш с огромни данни.

#65299 (ツ) Дон Реба
Създадено на 05.07.2022, видяно: 486 пъти.
BIGBUGEX
Дон Реба
BIGBUGEX

И двете сте прави. В С++ се предава като указател всяка структура над 8 байта. Но в такъв случай, извикващата функция е длъжна да алокира ново копие в стека и така да предаде указателя. Сиреч не се различава от предаване би вал.

това което казваш ми се струва разумно само при конвенции в които предаването на параметрите е през регистри (мисля че 64 битовите компилатори са така), иначе е само едно излишно дереференсване

Това беше валидно за 32 битов режим. Сега (в 64 битов режим) май всичко което е структура е с референция. Но не съм много сигурен.

аз 32 битовия cdecl навремето го знаех наизуст, защото ми трябваше, и нямам спомен да е така. само за резултата (ако е структура) беше както казваш. тия ниви обаче ги орях преди 15 години така че не си залагам главата

#65306 (ツ) Евлампи
Създадено на 05.07.2022, видяно: 465 пъти.
BIGBUGEX

И двете сте прави. В С++ се предава като указател всяка структура над 8 байта. Но в такъв случай, извикващата функция е длъжна да алокира ново копие в стека и така да предаде указателя. Сиреч не се различава от предаване би вал.

Пойтерите в цъ са разкошен пример за полезна илюзия, за разлика от псевдонимите в цеплюспляс които са от възможно най-лошите примери за вредна илюзия :)

#65307 (ツ) Евлампи
Създадено на 05.07.2022, видяно: 463 пъти.
Дърти Хари

Ок, прав си. Даже не знаех че ги има такива особенности, никога не са ми трябвали.

ОсобеНости. Иначе цъ шарп като изключим че заради маниакалната обсесия на 'лошите' микрософт за обратна съвместимост оставя впячатление за манджа с грозде, боза и люти чушки е много способен език, вероятно дори по-способен от цеплюспляс в ръцете на разбирач

#65308 (ツ) Евлампи
Създадено на 05.07.2022, видяно: 461 пъти.
BIGBUGEX

И двете сте прави. В С++ се предава като указател всяка структура над 8 байта

Цъ е много красива и също толкова много отровна змия, не е въпрос на дали а на кога ще ухапе и най-опитен змияр :)

ВСЯКО нещо което не е изрично гарантирано е undefined/implementation defined/compiler version/settings настройка.

Тоест почти всичко :)

#65313 (ツ) Stilgar
Създадено на 05.07.2022, видяно: 454 пъти.
Дърти Хари
Stilgar

Да, но освен reference types има и value types (декларират се със struct) и си конструираш каквито си искаш типове които по подразбиране се предават по стойност. Най-често срещаният такъв тип е DateTime. В добавка параметрите могат да са ref което ги прави да се предават по референция (демек указател към стека). Това може да се ползва и с value и с reference types например ако имаш m(ref List<string> strings) { strings = null; } и го викнеш като m(ref neshto) после нещото ще е null, а при същото нещо без ref няма да е null (List си е reference type, и по принцип си работи като в Java). Отделно от това има един keyword stackalloc който позволява да алокираш неща на стека, но си има списък от неща за които работи примерно за масиви и спанове не може да го ползваш за всеки тип дето ти хрумне. Отделно на всичко това C# има C++ режим в който имаш буквални указатели със синтаксис от C++, но за това ти трябва unsafe блок и по принцип се гледа с лошо око на употребата на това щото може да направиш C++ бели докато тея неща които изброих преди са направени safe и се разбират с GC-то и имат някакви ограничения все пак за да може да е сигурно че няма да се лийква памет и прочие

Ок, прав си. Даже не знаех че ги има такива особенности, никога не са ми трябвали.

По принцип тея неща не трябват на нас простосмъртните трябват на хората дето пишат игри на unity и на онея дето пишат примерно самото ASP.NET и си мерят там колко милиона заявки в секунда обработват за да върнат Hello World по HTTP

#65314 (ツ) BIGBUGEX
Създадено на 06.07.2022, видяно: 450 пъти.
Евлампи
BIGBUGEX

И двете сте прави. В С++ се предава като указател всяка структура над 8 байта

Цъ е много красива и също толкова много отровна змия, не е въпрос на дали а на кога ще ухапе и най-опитен змияр :)

ВСЯКО нещо което не е изрично гарантирано е undefined/implementation defined/compiler version/settings настройка.

Тоест почти всичко :)

Опитния змияр знае, че implementation defined означава пътя на най-малкото съпротивление за съответната архитектура. Ако познаваш хардуера undefined си е съвсем defined.

Но да се върнем на военната операция. Едно птиченце (Данчо Шорта) ми каза, че войната свърши и Рассия победи. И форумните либерасти нещо заглъхнаха. Което е добре. Значи скоро ще ходя да троля Асен Генов из коментарите на Контракоментар (щото ме е баннал в чата).

#65316 (ツ) Дон Реба
Създадено на 06.07.2022, видяно: 442 пъти.

тя войната още не е почнала, а ти - свърши. като свърши наистина, няма да има нужда да тролиш либерастите, те ще си режат сами вените

#65320 (ツ) bobyb
Последно редактирано на 06.07.2022 от bobyb, видяно: 433 пъти.
BIGBUGEX
Евлампи
BIGBUGEX

И двете сте прави. В С++ се предава като указател всяка структура над 8 байта

Цъ е много красива и също толкова много отровна змия, не е въпрос на дали а на кога ще ухапе и най-опитен змияр :)

ВСЯКО нещо което не е изрично гарантирано е undefined/implementation defined/compiler version/settings настройка.

Тоест почти всичко :)

Опитния змияр знае, че implementation defined означава пътя на най-малкото съпротивление за съответната архитектура. Ако познаваш хардуера undefined си е съвсем defined.

Но да се върнем на военната операция. Едно птиченце (Данчо Шорта) ми каза, че войната свърши и Рассия победи. И форумните либерасти нещо заглъхнаха. Което е добре. Значи скоро ще ходя да троля Асен Генов из коментарите на Контракоментар (щото ме е баннал в чата).

Така ли стана? Освободиха ли вече Донбас или каквото е останало от него?

Абе цар путкин знае ли че войната е свършила? Никой ли не смее да му каже?

#65321 (ツ) Major Obvious
Създадено на 06.07.2022, видяно: 422 пъти.
Дон Реба

тя войната още не е почнала, а ти - свърши. като свърши наистина, няма да има нужда да тролиш либерастите, те ще си режат сами вените

Истинският либераст ще твърди че рассия е загубила позорно войната дори и в момента под прозореца му да има парад на червената армия.

#65325 (ツ) Един от многото
Създадено на 06.07.2022, видяно: 416 пъти.
Major Obvious
Дон Реба

тя войната още не е почнала, а ти - свърши. като свърши наистина, няма да има нужда да тролиш либерастите, те ще си режат сами вените

Истинският либераст ще твърди че рассия е загубила позорно войната дори и в момента под прозореца му да има парад на червената армия.

Важна е "моралната победа"! 😏

Едно време като ни четоха "Балканджи Йово" ни обясняваха как балканджията без ръце, крака и очи е "моралният победител", а турците дето са взели сестра му да я ебат са "моралните загубеняци".

Както е казал Валентин Вацев:

"Малки сме и не ги разбираме тея неща!"

#65326 (ツ) Дон Реба
Създадено на 06.07.2022, видяно: 408 пъти.
Major Obvious
Дон Реба

тя войната още не е почнала, а ти - свърши. като свърши наистина, няма да има нужда да тролиш либерастите, те ще си режат сами вените

Истинският либераст ще твърди че рассия е загубила позорно войната дори и в момента под прозореца му да има парад на червената армия.

чак толкова истински няма, може би само краси гегов го умее това

0 1 2 3 4 ....90 91 92 93 94 ....182 183 184 185 186 ....363 364 365 366 367 ....542 543 544 545 546

Честита Трета Световна
7

AsmBB v3.0 (check-in: a316dab8b98d07d9); SQLite v3.42.0 (check-in: 831d0fb2836b71c9);
©2016..2023 John Found; Licensed under EUPL. Powered by Assembly language Created with Fresh IDE