OT Ceckarsky kviz
Pavel Troller
patrol@sinus.cz
Čtvrtek Březen 5 13:26:23 CET 2009
> MSVC6
>
> #include <windows.h>
> #include <stdio.h>
>
> BYTE bGetVal()
> {
> static BYTE val=0;
>
> return val++;
> }
>
> int main(int argc, char* argv[])
> {
> WORD val16;
>
> val16 = bGetVal() | (bGetVal()<<8);
> printf("%.4X\n", val16);
>
>
> return 0;
> }
>
>
> so zatvorkami aj bez je vysledok rovnaky 0100h
>
Zdravim,
oba jsme koukam delali totez, vcetne simulace GetByte(), ja pro zmenu v gcc:
#include <stdio.h>
#include <asm/types.h>
__u8 GetByte() {
static __u8 count = 0;
return count++;
}
int main() {
__u16 a;
a = GetByte() | GetByte() << 8;
printf("%04x\n",a);
return 0;
}
V obou pripadech (zavorky/nezavorky) take vysledek 0100.
Takze mate pravdu, poradi volani GetByte() je spravne.
S pozdravem pavel Troller
Další informace o konferenci Hw-list