OT odcitanie v C
Michal Gregor
a2x1nptda8 na email.cz
Čtvrtek Duben 24 11:13:22 CEST 2014
Boleni hlavy :-)
Hned prvni radek, chybi tam zavorka, takze musim zbytecne premyslet nad
poradim vyhodnocovani v C:
if (l - h < 3) result |= 1;
Druha vec co vyleze z "l - h" unsigned nebo signed? Vzhledem k prapodivnym
vlastnostech ruznych prekladcu se clovek muze dockat velmi zvlastnich
vysledku.
Michal Gregor
----- Original Message -----
From: "Jan Waclawek" <konfera na efton.sk>
To: "HW-news" <hw-list na list.hw.cz>
Sent: Thursday, April 24, 2014 10:14 AM
Subject: OT odcitanie v C
Aky je vysledok?
#include <stdint.h>
volatile uint32_t l;
volatile uint16_t h;
volatile uint8_t result;
int main(void) {
l = 0x00000002;
h = 0xFFFE;
result = 0;
if (l - h < 3) result |= 1;
if ( ((uint16_t)l - h) < 3 ) result |= 2;
if ( (uint16_t)(l - h) < 3 ) result |= 4;
if ( (uint16_t)((uint16_t)l - h) < 3 ) result |= 8;
if (l - h < 10) result |= 16;
if ( ((uint16_t)l - h) < 10 ) result |= 32;
if ( (uint16_t)(l - h) < 10 ) result |= 64;
if ( (uint16_t)((uint16_t)l - h) < 10 ) result |= 128;
while(1) {
};
}
Aplikacia: mam 32-bitovy volne beziaci casovac (l), a potrebujem odmerat
nejaky kratky cas, menej ako 65535 tikov (do h si odlozim hodnotu na
zaciatku odmeriavania).
wek
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list