Да
11 22 22 33 33 33
по строчкам пройдя свой код.union
и struct
работают еще как отличимо.ObjectPos
имеет размер 2 байта и выравнивание на 2 байта. Оба его поля размещаются в этих двух байтах, адреса этих полей одинаковы и размеры тоже одинаковы - 2 байта.ObjectPos
допускается задать значение одного поля и прочитать его же из другого поля. Документация дает исчерпывающее понимание этого формата.struct
- все поля имеют свой собственный адрес, упакованы согласно своему выравниванию и занимают свою уникальную память согласно своему собственному размеру.struct ObjectPos {
unsigned short x;
unsigned short y;
};
ObjectPos
был бы уже 4 байта, т.к. оба поля имели бы в структуре свою собственную память.std::unordered_map
[?] являются по умолчанию: наличие достижимого инстанцирования шаблона std::hash
и оператора эквивалентности.std::unordered_map
, использовав свои типы вместо типов по умолчанию.Не понимаю зачем это нужно, ведь оно же ищет по хеш-функции определенной выше
std::unordered_map
будет искать среди ключей с одинаковым хэшем эквивалентный искомому. In any case, if the value of the right operand is negative or is greater or equal to the number of bits in the promoted left operand, the behavior is undefined.
( size_t( s.x ) << 16 )
. и мне нужно по x и y находить их
Можно конечно ObjectPos заменить на обычный int и написать функцию которая будет из двух short'ов делать один int
union
от struct
?0
.1 / 2
представляет собой целочисленное деление.o
имеет целочисленный тип и в коде pow(*(*(a + i) + j), 1/o)
выполняется целочисленное деление, результатом которого у тебя будет или 1
, или 0
в большинстве случаев. Любое число в нулевой степени равно 1
, поэтому у тебя "Все время 1 получается".Otherwise, if E1 has a signed type and non-negative value, and E1 × 2^E2 is representable in the result type, then that is the resulting value; otherwise, the behavior is undefined.
1 / 2
. И почему будет именно так, как будет.1 / 2
? Почему результат будет именно таким?
Ну если "клапанА", то должно быть и "приводА", и "датчикА" и все остальное так же. А иначе не "профессионал". :)
По поводу проводов. Видеонаблюдение в частных домах сегодня тоже очень популярно. И там тоже есть проблема с поломкой камер во время грозы. Все решается заменой меди на оптику во всех уличных линиях. Это не так дорого, как принято считать.
Для защиты электроники от ЭМП посмотри клетку Фарадея. Такая делается даже самостоятельно. Защита электросети выполняется штатными средствами: УЗО, дифавтомат, УЗИП, правильное заземление и далее по списку.