LINUX.ORG.RU

Ну, и параллельно.

Код:

#include <stdio.h>
int main() {
	char a[2]; a[0]='A'; a[1]='B';
	short b=0;
	printf("%d %c\n",b++,a[b]);
	return 0;
}

Вывод: «0 A»

Вопрос: почему не «1 B» или «0 B»?

damnemall
() автор топика
Ответ на: комментарий от damnemall

>printf(«%d %c\n»,b++,a[b]);

Сначала берется значение b, потом оно увеличивается. А про a[b] см. выше.

Dimanc ★★
()
Ответ на: комментарий от Dimanc

Пример с функциями:
void f(int, int);
int g();
int h();
f(g(), h());
По Стандарту неизвестно, какая из функций g или h будет вызвана первой, но известно, что f() будет вызвана последней.

Т.е. дело в том, что gcc сначала считает a[b++]||a, а уже потом b||b++?

damnemall
() автор топика

ЕМНИП, стандарт не гарантирует порядок вычисления аргументов printf(), т.е. у тебя сначала вычисляется a[b++], а потом b.

anonymous
()
Ответ на: комментарий от damnemall

>Т.е. дело в том, что gcc сначала считает a[b++]||a[b], а уже потом b||b++?

Gcc может считать в том порядке, в котором ему вздумается.

По Стандарту неизвестно, какая из функций g или h будет вызвана первой, но известно, что f() будет вызвана последней.

Dimanc ★★
()
Ответ на: комментарий от damnemall

Порядок вычисления аргументов при передаче в функцию не определён стандартом. Так лучше не писать.

anonymous
()
Ответ на: комментарий от ananas

Результат не меняется в обоих случаях.

damnemall
() автор топика

Кернигана&Ричи почитайте:

Приложение А - раздел А 7.3.2. Вызов функции

«Очерёдность вычисления аргументов не определена, в разных компиляторах она различна.»

Не рекомендуется в вызовах функций использовать вычисляемые выражения.

OldFatMan
()
Ответ на: комментарий от kifer

Скорее заставляет писать нормальный код, а не однострочники.

Deleted
()

Детский сад

kifer, Diecae8i: несмотря на ваш реальный возраст вы оба смотритесь как два малолетних долбоёба, спорящих ни о чём и разводящих демагогию.
Может, хорош уже? Пойдите навстречу друг другу, перечитайте свои посты и посты оппонета и вправьте спор в правильное русло. Интересно же.

anonymous
()
Ответ на: комментарий от Dimanc

>А это естественно...

Для кого-то естественно писать слева направо. Арабы, наверное, тупые, не понимают, что это естественно... Хотя письменность узнали пораньше чем «белые люди» в Европах. Вообще слова «естественно» и «очевидно» неприменимы для придуманных человеками условностей.

slackwarrior ★★★★★
()
Ответ на: комментарий от Dimanc

>Чем?

Порядком аргументов в стеке, хотя-бы :)

Ты, что, реально не в курсе? А я посчитал твой пост тонким троллингом :(
Надеюсь, ты как я - самоучка?

Attila ★★
()
Ответ на: комментарий от slackwarrior

>Вообще слова «естественно» и «очевидно» неприменимы для придуманных человеками условностей.

Очень даже применимы. Как раз языки разные, а поскольку люди выбирают соглашения о вызове, вполне естественно, что если они не будут подогнаны друг под друга (что нормально для си и паскаля), то и соглашения будут разными.

Dimanc ★★
()
Ответ на: комментарий от Attila

>Порядком аргументов в стеке, хотя-бы :)

Ты, что, реально не в курсе?


В курсе, см. выше.

Надеюсь, ты как я - самоучка?


Ну, немного самоучка... Но не совсем. А что?

Dimanc ★★
()
Ответ на: комментарий от Dimanc

«Естественное» синоним природного. В созданном людьми очень мало естественного. Например, люди придумали считать от нуля до N-1, потому лишь, что придуманные ими машины так было проще запрограммировать, хотя интуиция взывает о «1 до N» (хотя перепроектировать машины вроде никто не мешал). Потому что при расчете по порядку «Нулевой» про себя никто не говорит. Ну а «Сто минус первый» вообще порвет мозг и говорящему и слушателям. А бытовое упортребление слова «естественно» в отношении условного и надуманного - обычно свидетельствует об отсутствии внятных логических оснований.

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

>«Естественное» синоним природного. В созданном людьми очень мало естественного. Например, люди придумали считать от нуля до N-1, потому лишь, что придуманные ими машины так было проще запрограммировать, хотя интуиция взывает о «1 до N» (хотя перепроектировать машины вроде никто не мешал). Потому что при расчете по порядку «Нулевой» про себя никто не говорит. Ну а «Сто минус первый» вообще порвет мозг и говорящему и слушателям. А бытовое упортребление слова «естественно» в отношении условного и надуманного - обычно свидетельствует об отсутствии внятных логических оснований.

Слушайте, существует некоторый базис, придуманный людьми. Он - условен, да. Но есть вещи, которые из него вытекают естестественным путем. Почему для них нельзя использовать «естественно»?

Dimanc ★★
()
Ответ на: комментарий от Dimanc

>Например, люди придумали считать от нуля до N-1, потому лишь, что придуманные ими машины так было проще запрограммировать

Ну вот, для машин естественно использовать такую нумерацию.

хотя интуиция взывает о «1 до N»


Потому что вам привычна такая надуманная нумерация.

Dimanc ★★
()
Ответ на: комментарий от Dimanc

>Почему для них нельзя использовать «естественно»?

Естественно потому, что он искуственный. Насквозь: свойства базиса влияют на все последующие конструкции из него созданные по произволу создателя. Это очевидно и естественно. Следующий вопрос! ;)

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

>>Почему для них нельзя использовать «естественно»?

Естественно потому, что он искуственный. Насквозь: свойства базиса влияют на все последующие конструкции из него созданные по произволу создателя. Это очевидно и естественно. Следующий вопрос! ;)


Так вы не ответили, а просто повторили мои мысли. Можно или нельзя и почему?

Dimanc ★★
()
Ответ на: комментарий от Dimanc

>Потому что вам привычна такая надуманная нумерация.

Покажите мне пустой объект (пустое множество) в природе, и я поверю. Еще естественнее будет, если можно будет этот «нулевой объект» потрогать руками. И очевиднее - если таки он будет видет воочию. Свойства искуственного «естественного языка» в отношении его носителей склонны таки отражать естественные (анатомические) особенности его носителей.

slackwarrior ★★★★★
()
Ответ на: комментарий от Dimanc

>Можно или нельзя и почему?

Нельзя, ибо восстаешь тем самым на естество ;) (Но если очень хочется - кто ж запретит? Теги я забываю проставить)

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

>Покажите мне пустой объект (пустое множество) в природе, и я поверю.

Эм... В некотором объеме есть некоторое множество частиц. Когда в объеме вакуум, это множетво пусто. Сойдет?

Еще естественнее будет, если можно будет этот «нулевой объект» потрогать руками. И очевиднее - если таки он будет видет воочию.


Разбежались.

Свойства искуственного «естественного языка» в отношении его носителей склонны таки отражать естественные (анатомические) особенности его носителей.


Согласен. И при чем тут нумерация?

Dimanc ★★
()
Ответ на: комментарий от Dimanc

>Эм... В некотором объеме есть некоторое множество частиц. Когда в объеме вакуум, это множетво пусто. Сойдет?

Хм.. Не очень удачный пример. Ладно. Есть яма. В ней - яблоки. Яблок нет - множество пусто.

Dimanc ★★
()
Ответ на: комментарий от slackwarrior

А абстракция «нуль - нет сигнала(импульса), единица - есть сигнал(импульс)» не поможет? :-)

А как же «вижу два банана, вижу один банан»? Может случай «не вижу бананов» таки можно считать эквивалентным «вижу нуль бананов»? :)

Правда, потрогать нельзя... :)

OldFatMan
()
Ответ на: комментарий от Dimanc

>Яблок нет - множество пусто.

Если у меня нет предыдущего опыта наличия яблок в яме, мне в общем случае начхать на множество каких-то там воображаемых яблок (то чего этот гипотетический естественный я не видел, не существует для меня - и математики с физиками могут сколько угодно рассказывать свои басни). Сказка «Буратино» это символизирует. Без абстрактного мышления, как видно, не обойтись, не? То есть, если «было и отняли» - уже имеются какие-то арифметические действия %) А если не было - ну так и действий никаких не требуется. Даже бритва Оккама отдыхает. Напрмер, дети - куда как близкие к естественному всему - часто плохо справляются с абстрактными числами, но отлично считают конфеты и деньги. Чем старше и опытнее человек, тем меньше в нем этого естественного, хотя куча когда-то неестественных вещей для него становится привычной. То есть вся эта кажущаяся с высоты опыта естественность - не более чем привычка (особенно когда говорят о естественности порядка счета или, допустим, интуитивности интерфейса).

slackwarrior ★★★★★
()
Ответ на: комментарий от OldFatMan

См. предыдущий псто. «Естественная логика» исходит из позитивных утверждений. Несуществующие бананы ее тупо нее^Wколышут.

slackwarrior ★★★★★
()

Модератор облажался. «Личная переписка», лучше причины не мог придумать?

Diecae8i
()
Ответ на: комментарий от slackwarrior

ОК. Как с точки зрения «естественной логики» оценить следующее:

Наблюдатель сидит за столом и видит банан, лежащий на столе. Проходит Некто, берёт этот банан и съедает. Как оценит последнее состояние наблюдатель?

OldFatMan
()
Ответ на: комментарий от OldFatMan

>Наблюдатель сидит за столом и видит банан, лежащий на столе. Проходит Некто, берёт этот банан и съедает. Как оценит последнее состояние наблюдатель?

Как Буратино. Он предупредит действия Некта и банан останется лежать на столе, а Некто с синяками у ушибами пойдет, хромая, лесом на^W Потому что наблюдатель вооружон естественной логикой, а естественная логика беспредел не допускает :).

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

>Он предупредит действия Некта и банан останется лежать на столе, а Некто с синяками у ушибами пойдет, хромая, лесом на^W Потому что наблюдатель вооружон естественной логикой, а естественная логика беспредел не допускает :).

Некто оказался сильнее и таки съел банан. Ваша логика не работает в таком случае?

Dimanc ★★
()
Ответ на: комментарий от Dimanc

>Некто оказался сильнее и таки съел банан. Ваша логика не работает в таком случае?

Логика Буратины ентую вероятность игнорирует, потому что А) Буратина не обладает абстрактным мышлением (деревянный бо на всю голову) Б) Папа Карло, как человек умудренный опытом, учтет такую вероятность, и настрогает буратине взвод таких же чурок, которые исключат Некта как класс, завалят и поделят на ноль, не имея представления опять же, что на ноль делить нельзя (а школу, где дают арифметику, они прогуливали) Да и сила Некту не сильно поможет - Буратина деревянный. А Нектам, даже если они размером со шкаф, всем горло жалко. Так что Папа Карло учел все факторы и Буратина был в сказке в единственном экземпляре.

slackwarrior ★★★★★
()
Ответ на: комментарий от Dimanc

>Так это изъян его логи, не?

С точки зрения Некта? Так это просто узость мышления и самоуверенность. Некто изменит свое мнение, ударив чурку, потому дерево бить больно. А боль таки игнорирует мнение Некта о достоинствах и недостатках логик - и ее Некто не может игнорировать, если он в своем уме. Ну а Упрямый Некто - ССЗБ. А двум Буратинам А) нечего делить потому что Б)Буратино в сказке один. Логика!

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

А если рассмотреть случай, когда Наблюдателю банан на столе «до лампочки» (не Буратино он!). Просто тупо смотрит на него и думает: «вижу один банан».

После съедения Нектом данного банана как Наблюдатель оценит текущее состояние с точки зрения «естественной логики»?

OldFatMan
()
Ответ на: комментарий от OldFatMan

>После съедения Нектом данного банана как Наблюдатель оценит текущее состояние с точки зрения «естественной логики»?

Дайте я угадаю. Сейчас он скажет, что такое бла-бла-бла не может произойти, т.к. Некто не знает такого понятия, как отсутствующий банан.

Dimanc ★★
()
Ответ на: комментарий от OldFatMan

>После съедения Нектом данного банана как Наблюдатель оценит текущее состояние с точки зрения «естественной логики»?

Он оценит текущее состояние банана, как «Хорошо пошел!», если любит бананы... А если не любит - он проигнонирует банан.

slackwarrior ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.