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