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

 

начало

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

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

семинари ...

документи

как да ...

 

 

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

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


  • Subject: Re: lug-bg: c/cpp incr/decr
  • From: Nikolay Mitev <nikolaymitev@xxxxxxx>
  • Date: Tue, 18 Jan 2005 14:20:16 +0200

Vasil Kolev wrote:

On вт, 2005-01-18 at 12:04 +0200, Nikolay Mitev wrote:
Vasil Kolev wrote:
Нали знаеш вица "Докторе, като правя така, ме боли" "Ами не прави
така" :) ...Смесването на префиксния и постфиксния оператор в/у една и
съща променлива в един израз не е ясно какво дава, както например не е
ясно какво прави
a+++b (т.е. дали е (a++) +b или a+(++b) ).

Не е така. По стандарт копилаторът е длъжен да парсне най-дългия токен, дори това да води до синтактична грешка. Т.е. а+++b задължително трябва да се парсне като (а++) +b.
Примерно в c++ стандарта е даден примера (2.4.5)
a+++++b се парсва като а++ ++ +b, и дава синтактична грешка, въпреки че ако се парсне като
а++ + ++b няма да има грешка.


В C++ може, но в C е недефинирано като поведение, като бях първи курс и
си нямахме друга работа, експериментирахме с няколко компилатора и
няколко архитектури, това даваше различни резултати.
Айде сега.

Из драфт на C

std:http://www.open-std.org/jtc1/sc22/wg14/www/docs/n843.htm


[#6]  EXAMPLE 2 The  program  fragment  x+++++y is parsed as
      x+++++y, which violates a constraint on increment operators,
      even   though  the  parse  x+++++y  might  yield  a  correct
      expression.

"Форматирането е изгубено, но в pdf-a е точно както в c++ std"

'nuff said

cheers,
face

============================================================================
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.