Да нет, не тупишь. Код, очевидно неверный, поскольку не зовет A.АццкоМото wrote: Я туплю или код неверный?
UPD. Да, туплю.
Хотя, возможно, в их предметной области побочных эффектов не бывает.
Да нет, не тупишь. Код, очевидно неверный, поскольку не зовет A.АццкоМото wrote: Я туплю или код неверный?
UPD. Да, туплю.
Ну да, перезагрузка Эклипса вернула представления на те же позиции, что и с утраИнтеррапт wrote:Быть такого просто не может.
Не, туплю8K wrote:Да нет, не тупишь. Код, очевидно неверный, поскольку не зовет A.АццкоМото wrote: Я туплю или код неверный?
UPD. Да, туплю.
Да, ес-но, Джава уже была потом добавлена, слегка не по делу. Но своих позиций по поводу возвращения булевых значений в Си - не сдам!АццкоМото wrote:Ну да, перезагрузка Эклипса вернула представления на те же позиции, что и с утраИнтеррапт wrote:Быть такого просто не может.
Но, тогда, я все равно придерусь. Изначально было A&&B. А такое в джаве с интами тоже не проходит. Так что return B вполне сойдет
Шо, и какой-нибудь strcmp() перепишешь???Интеррапт wrote: Но своих позиций по поводу возвращения булевых значений в Си - не сдам!
каких эффектов? засирания локального стека другим thread'ом?8K wrote:Да нет, не тупишь. Код, очевидно неверный, поскольку не зовет A.АццкоМото wrote: Я туплю или код неверный?
UPD. Да, туплю.
Хотя, возможно, в их предметной области побочных эффектов не бывает.
Видимо, имелось в виду, что А может изменить значение ВDweller wrote:каких эффектов? засирания локального стека другим thread'ом?8K wrote:Да нет, не тупишь. Код, очевидно неверный, поскольку не зовет A.АццкоМото wrote: Я туплю или код неверный?
UPD. Да, туплю.
Хотя, возможно, в их предметной области побочных эффектов не бывает.
или имеется в виду многопоточная ходьба по decision tree с одними и теми же входными А,В,С?
С таким ходом мысли не к нам а куда-нибудь в другой отдел. Не то чтобы он плох или неправилен, просто когда стоит задача сделать что-то простое как можно быстрее, надо именно это и делать а не искать подвохи, тем более что кандидату заранее было объявлено об их отсутствии.АццкоМото wrote:Видимо, имелось в виду, что А может изменить значение ВDweller wrote:каких эффектов? засирания локального стека другим thread'ом?8K wrote:Да нет, не тупишь. Код, очевидно неверный, поскольку не зовет A.АццкоМото wrote: Я туплю или код неверный?
UPD. Да, туплю.
Хотя, возможно, в их предметной области побочных эффектов не бывает.
или имеется в виду многопоточная ходьба по decision tree с одними и теми же входными А,В,С?
т.е. если А это
bool A () {
b=false;
return a;
}
и B это
bool B() {
return b;
}
то Ваша перестановка некорректна для большинства йызыков. другой вопрос, что несложно догадаться, что ничего подобного не имелось в виду
Я не знаю про decision tree.Dweller wrote:каких эффектов? засирания локального стека другим thread'ом?8K wrote:Код, очевидно неверный, поскольку не зовет A.
или имеется в виду многопоточная ходьба по decision tree с одними и теми же входными А,В,С?
Ну вообще говоря иметь представление о порядке вычисления логических выражений было бы неплохо.Dweller wrote: С таким ходом мысли не к нам а куда-нибудь в другой отдел. Не то чтобы он плох или неправилен, просто когда стоит задача сделать что-то простое как можно быстрее, надо именно это и делать а не искать подвохи, тем более что кандидату заранее было объявлено об их отсутствии.
Так strcmp не возвращает булево значение, а описывает отношение между строками, т.е. возвращает >0, =0, <0АццкоМото wrote:Шо, и какой-нибудь strcmp() перепишешь???Интеррапт wrote: Но своих позиций по поводу возвращения булевых значений в Си - не сдам!
Ну прежде всего он возвращает "равно или неравно", что нечто вроде булевого значенияИнтеррапт wrote:Так strcmp не возвращает булево значение, а возвращает >0, =0, <0АццкоМото wrote:Шо, и какой-нибудь strcmp() перепишешь???Интеррапт wrote: Но своих позиций по поводу возвращения булевых значений в Си - не сдам!
зачем же его переписывать?
Не-а, оно именно возвращает отношения строк, а уж 0 - это просто частный случай.АццкоМото wrote: Ну прежде всего он возвращает "равно или неравно", что нечто вроде булевого значения
Почему это? У этой функции есть четко определенные значения, что она должна возвращать. Вот, что говорит C99:АццкоМото wrote: А если важно больше/меньше, то что-то типа tribool. Т.е. по аналогии нужно возжелать 1,0,-1 и никак иначе
(кстати, x==y всю жизнь работал ровно также, как и strcmp() - по знаку результата можно было определить, что больше, а не только равны ли они)
Об чем спор, если есть четкое определение в стандарте?C99, 7.21.4 wrote: The sign of a nonzero value returned by the comparison functions memcmp, strcmp, and strncmp is determined by the sign of the difference between the values of the first pair of characters (both interpreted as unsigned char) that differ in the objects being compared.
Опять же, все дело в контексте. А он у нас связан с простейшим decision tree.АццкоМото wrote:Ну вообще говоря иметь представление о порядке вычисления логических выражений было бы неплохо.Dweller wrote: С таким ходом мысли не к нам а куда-нибудь в другой отдел. Не то чтобы он плох или неправилен, просто когда стоит задача сделать что-то простое как можно быстрее, надо именно это и делать а не искать подвохи, тем более что кандидату заранее было объявлено об их отсутствии.
А если Вам нужно решить простое быстро, а не искать подвохи, то вот ответ:
return (A||(!B))&&(B||C); // Вас же он не устраивает, не так ли?
Вы же придумали элементарную, но отнюдь неочевидную задачу, распарсировать которую - отдельная задача, а все ее implications - вообще повод для трехчасовой беседы
А какой ответ про "типы машин"?Dweller wrote:Опять же, все дело в контексте. А он у нас связан с простейшим decision tree.АццкоМото wrote:Ну вообще говоря иметь представление о порядке вычисления логических выражений было бы неплохо.Dweller wrote: С таким ходом мысли не к нам а куда-нибудь в другой отдел. Не то чтобы он плох или неправилен, просто когда стоит задача сделать что-то простое как можно быстрее, надо именно это и делать а не искать подвохи, тем более что кандидату заранее было объявлено об их отсутствии.
А если Вам нужно решить простое быстро, а не искать подвохи, то вот ответ:
return (A||(!B))&&(B||C); // Вас же он не устраивает, не так ли?
Вы же придумали элементарную, но отнюдь неочевидную задачу, распарсировать которую - отдельная задача, а все ее implications - вообще повод для трехчасовой беседы
Если бы я хотел многопоточника, я бы спросил что нибудь типа:
X = Y = 0 and X and Y are both shared by both threads
Thread 1
X = 1
if(Y == 1)
print "Y = 1"
else
print "Y = 0"
Thread 2
Y = 1
if(X == 1)
print "X = 1"
else
print "X = 0"
Какие результаты и на какого типа машинах можно получить?
имеются в виду разные архитектуры процессораcrypto5 wrote:А какой ответ про "типы машин"?
Предположим. И какая бывает разница?Dweller wrote:имеются в виду разные архитектуры процессораcrypto5 wrote:А какой ответ про "типы машин"?
и все же дам интересующимся возможность пообсуждатьcrypto5 wrote:Предположим. И какая бывает разница?Dweller wrote:имеются в виду разные архитектуры процессораcrypto5 wrote:А какой ответ про "типы машин"?
все же процессор это не телек с черезстрочной разверткой, минимальная атомарность не на уровне битов8K wrote:Интереснее было бы присваивать -1 вместо 1 (а нолики оставить). Я думаю, тогда бы чудеса и начались. Никто же не обещает целое число обновлять на счет раз.
Тем не менее, в примере, который бы проверял значение на 0 и затем печатал не фиксированное сообщение, а то, что лежит в X и Y, я бы ожидал увидеть (в том числе и) промежуточные значения, где часть байтов целого еще не успела обновиться.Dweller wrote:минимальная атомарность не на уровне битов
Да, тогда интересная должна быть разница между процессорами, где байты целого обновляются от старших к младшим, и где - наоборот!8K wrote:и затем печатал не фиксированное сообщение, а то, что лежит в X и Y, я бы ожидал увидеть (в том числе и) промежуточные значения, где часть байтов целого еще не успела обновиться.
Добавил к условию задачи: атомарность операций присвоения и сравнения гарантированаSVK wrote:Да, тогда интересная должна быть разница между процессорами, где байты целого обновляются от старших к младшим, и где - наоборот!8K wrote:и затем печатал не фиксированное сообщение, а то, что лежит в X и Y, я бы ожидал увидеть (в том числе и) промежуточные значения, где часть байтов целого еще не успела обновиться.
Неужели тоже хадуп?Dweller wrote:в железках тоже софт есть, причем непростой