 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.61 Kraj: Ljubljana
|
Objavljeno: Sre Nov 12, 2008 11:15 pm Naslov sporočila: ANSI C & integer promotion |
|
|
Kaj bi odgovorili, kaj izpiše spodnji program, brez da ga prevedete in zaženete?
Koda: |
#include <stdio.h>
int main(void)
{
unsigned int i = 3;
signed int j = -20;
if ((i+j ) > 0)
printf("Result positive.");
else
printf("Result negative.");
return 0;
} |
Ali zna kdo razložit, zakaj po ANSI C standardu
operacija z predznačenimi in nepredzančenimi spremenljivkami
vrne nepredznačen rezultat? Intuitivno bi jaz prej rekel, da bi prej bilo obratno.
Z lintanjem kode se seveda najde težava, z GCC prevajalnikom in opcijo -Wall kot tudi z ARM prevajalnikom pa ne... |
|
Nazaj na vrh |
|
 |
multicopy Član

Pridružen-a: Ned 25 Feb 2007 23:26 Prispevkov: 43 Aktiv.: 0.19 Kraj: Ljubljana - okolica
|
Objavljeno: Čet Nov 13, 2008 8:58 am Naslov sporočila: Re: ANSI C & integer promotion |
|
|
alessio je napisal/a: |
Kaj bi odgovorili, kaj izpiše spodnji program, brez da ga prevedete in zaženete?
Koda: |
#include <stdio.h>
int main(void)
{
unsigned int i = 3;
signed int j = -20;
if ((i+j ) > 0)
printf("Result positive.");
else
printf("Result negative.");
return 0;
} |
Ali zna kdo razložit, zakaj po ANSI C standardu
operacija z predznačenimi in nepredzančenimi spremenljivkami
vrne nepredznačen rezultat? Intuitivno bi jaz prej rekel, da bi prej bilo obratno.
Z lintanjem kode se seveda najde težava, z GCC prevajalnikom in opcijo -Wall kot tudi z ARM prevajalnikom pa ne... |
Definicija jezika C je takšna, da nekatere avtomatske type conversions - to je tiste, ki niso narejeni z cast, naredi sila neintuitivno, zlasti pri aritmetičnih izrazih v katerih nastopajo. Točen odgovor boš zagotovo našel v knjigi C Programming Language (2nd Edition) (Prentice Hall Software) (Paperback) by Brian W. Kernighan (Author), Dennis M. Ritchie (Author) , ki se jo da najti tudi kot PDF, mislim, da sem nekoč pred 20 leti sam naletel na identično stvar in odgovor je bil v citirani knjigi. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|