Cum să utilizați în mod corespunzător generice în delfii xe stivă overflow în rusă

Delphi produce o eroare în acest moment:

Operatorul nu se aplică acestui tip de operand

Este o situație normală, și eu doar abuzul generice sau ceva greșit scris în cod?







Pe scurt despre sarcină: Trebuie să creez o funcție pentru a lucra cu diferite tipuri de variabile întregi, care vor funcționa în funcție de mărimea variabilei specifice trecute de programator. A fost planificat ceva de genul:

Dacă aceasta este o utilizare abuzivă a medicamentelor generice. Voi fi bucuros să știu ce este eroarea.

Este o situație normală, și eu doar abuzul generice sau ceva greșit scris în cod?

Prin definiție, operatorul mod efectuează o operație de împărțire în întregime cu o întoarcere a restului. Ca operanzi pentru acest operator este permis să utilizeze numai numere întregi (Byte. Word. Cardinalul. Integer. Int64. UInt64.), Și toate celelalte tipuri sunt interzise, ​​ceea ce si compilatorul spune.







Sub capota, în diviziune intreg, asamblorul comandă div (pentru tipurile nesemnate) și idiv (pentru tipurile cu un semn) sunt folosite. Și toată diferența dintre împărțirea numerelor cu rate de biți diferite este numai în cazul în care înregistrează operanzii vor fi plasați în și ceea ce înregistrează rezultatul (restul) va fi. Mai multe informații despre registre pot fi citite aici.

Pe o platformă pe 32 de biți, procedurile __llmod încorporate sunt utilizate pentru împărțirea numerelor întregi pe 64 de biți. __llumod. deoarece în acest caz asemenea numere sunt stocate imediat în 2 registre și nu pot fi împărțite elegant printr-o singură comandă.

Trebuie să creez o funcție pentru a lucra cu diferite tipuri de variabile întregi, care vor funcționa în funcție de dimensiunea unei anumite variabile

Dacă într-adevăr doriți să utilizați generice, puteți utiliza această opțiune:

Nu uitați să listați toate tipurile cu care intenționați să lucrați.







Articole similare

Trimiteți-le prietenilor: