Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: c/cpp incr/decr


  • Subject: Re: lug-bg: c/cpp incr/decr
  • From: George Danchev <danchev@xxxxxxxxx>
  • Date: Tue, 18 Jan 2005 13:39:46 +0200

On Tuesday 18 January 2005 13:05, George Danchev wrote:
--cut--
> > [roam@straylight ~/c/misc/foo]> ./prec
> > (a++) + b = 6
> > a + (++b) = 7
> > a+++b = 6
> > [roam@straylight ~/c/misc/foo]>
> >
> > Това е резултат от изпълнението на следната програма:
> >
> > #include <stdio.h>
> >
> > int main(void)
> > {
> >         int a, b, c;
> >
> >         a = 1; b = 5;
> >         c = (a++) + b;
> >         printf("(a++) + b = %d\n", c);
> >
> >         a = 1; b = 5;
> >         c = a + (++b);
> >         printf("a + (++b) = %d\n", c);
> >
> >         a = 1; b = 5;
> >         c = a+++b;
> >         printf("a+++b = %d\n", c);
> >
> >         return (0);
> > }

а забравих да кажа, че tendracc каза същото (да кажем, че неговия парсър 
спазва ANSI C, ISO, POSIX1, POSIX2, XPG3, XPG4, SVID3, UNIX95.... каквото се 
сетите, въпреки, че не е ясно колко оптимален обектен код възпроизвежда) ... 

#include <stdio.h>
int main()
{
   int x, a, b;
   x = a = b = 5 ;
   x = a+++b;
   printf("a+++b = %d\n", x );

   x = a = b = 5 ;
   printf("a+++b = %d\n", a+++b );

   return 0;
}

Аналогично и gcc и tendracc казват, че това е 10, т.е. a+++b е всъщност 
(a++)+b ... но това е супер ясно и безинтересно като поведение ;-) 

-- 
pub 4096R/0E4BD0AB 2003-03-18 <danchev.fccf.net/key pgp.mit.edu>
fingerprint    1AE7 7C66 0A26 5BFF DF22 5D55 1C57 0C89 0E4B D0AB 
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.