Ahoj, mám jednoduchý dotaz.
Proč se používá např. ve funkci MakeLong (HiWord, LoWord) toto:
LoWord & 0xffff
popřípadě co by se stalo, kdyby tam ten bitový součin nebyl.
by tam pak mohlo zustat mnohem vetsi cislo nez je 0xffff (tomuhle se rika maskovani) - jde o to, ze vsechny bity, ktery jsou v masce 0, prepisou nulou vsechny bity na stejnych pozicich tez na 0
tj. 0xACEFABCD & 0xFFFF = 0xABCD
#2 KIIV
Takže se to používá když není jistota, že má proměnná jen ten počet bytů co má mít?
Zpět k té funkci MakeLong, pokud zadam typ parametrů na Integer, což jsou 2 byty, je stále možné, aby tam byla větší hodnota (a tedy je nutné použít masku)? ...a jestli jo, tak proč tam může být?
ona muze byt jistota ze to ma mnohem vetsi pocet bitu nez chces... napriklad chces z 32bitovy promenny vytahnout 4bajty kazdy zvlast... tam se masky hodi (obzvlaste pokud to pak das zase do 32bitovy promenny)
kazdopadne hodi se to kdyz ta velikost neni zarucena.. treba v C/C++ jsou zaruceny jen minimalni velikosti ale pak uz zalezi na operacnim systemu, procesoru a kompilatoru ... int muze pak byt 16,32 nebo dokonce 64bitu (ale to treba gcc normalne nema na 64b procesorech)
#5 Keny
tak na porovnani kusu pameti je i memcmp ... pokud potrebujes winapi tak si projdi winapi funkce..
a neni zase takovej problem to proste projit cyklem a udelat s tim co chces
EDIT: ikdyz ty budes asi hledat neco vic VBckovskyho ...
Diky, asi jsem hledal na spatnem miste nasel jsem jen kopirovani respektive presouvani, winapi je presne to co potrebuju.
Ono to ani neni k VB, potrebuju to v Autohotkey (coz je spis C), nema to datove typy, vse bere jako retezce a tak je asi lepsi pouzivat rovnou tu pamet.
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku