Hogyan kell megfelelően alkalmazni a generikusokat a delphi xe stack overflow-ban oroszul
A Delphi hibát okoz ebben a pontban:
Az operandus nem alkalmazható erre az operandusra
Ez normális helyzet, és helytelenül használom a generikusokat, vagy valami rosszul írtam a kódot?
Röviden a feladatról: Szükségem van egy olyan függvény létrehozására, amely különböző típusú egész változókkal dolgozik, amelyek a programozó által elfogadott változó méretétől függően fognak működni. Ezt tervezték valami ilyesmi:
Ha ez a generikumok visszaélése. Örülök, hogy tudom, mi a hiba.
Ez normális helyzet, és helytelenül használom a generikusokat, vagy valami rosszul írtam a kódot?
Definíció szerint a mod operátor teljes osztás műveletet hajt végre a maradék visszatérésével. Operandusaként erre kezelő számára, hogy csak egész számokat (Byte. Szó. Bíboros. Egész. Int64. UInt64.), És minden más típusú tilos, amit a fordító mondja.
A motorháztető alatt, az egész osztódásban az assembler utasítások a div (az alá nem írt típusok) és az idiv (a típusjelű típusokra) parancsokat használják. És a különböző bitráták közötti számok közötti különbség csak abban az esetben történik, amikor regisztrálja az operandusokat, és mi regisztrálja az eredményt (a maradék). A regiszterekkel kapcsolatos további információ itt olvasható.
32 bites platformon a beépített __llmod eljárások a 64 bites egész számok megosztására szolgálnak. __llumod. mivel ebben az esetben az ilyen számok azonnal tárolódnak 2 regiszterben, és nem oszthatók elegendően egyetlen parancs segítségével.
Szükségem van egy olyan függvény létrehozására, amely különböző típusú egész változókkal dolgozik, amelyek az adott változó méretétől függően fognak működni
Ha valóban generikusokat szeretne használni, akkor ezt a lehetőséget használhatja:
Ne felejtse el felsorolni azokat a típusokat, amelyekkel dolgozni kíván.