-
- Не скажу за ARM, но IAR для 8-бит AVR и MPLAB C18 поступали именно так. Tech2(217 знак., 23.12.2015 18:48)
- По-моему, до нативного он оптимизирует. То есть до 16 или до 32, в зависимости от того, чему равен int неуказанной длины. Но вообще вроде 1L<<n это по-уму пишется, не? - Николай Коровин(23.12.2015 19:17)
- Нет. n<16, поэтому int всегда подойдёт. В крайнем случае 1u, чтобы подавить предупреждение о смене знака. - SciFi(23.12.2015 19:21)
- В смысле «преследуя подразумевавшуюся цель расширить до n>16, пишется 1L<<n», я пытался сказать. Для n<16 оба нативных случая должны подойти. - Николай Коровин(23.12.2015 20:13)
- Нет. n<16, поэтому int всегда подойдёт. В крайнем случае 1u, чтобы подавить предупреждение о смене знака. - SciFi(23.12.2015 19:21)
- Ещё раз: к примеру, 1<<n, где n=15, ЛЮБОЙ компилятор (кроме глючных и убогих) вычислит правильно. А вот это вот "лишь бы не наоптимизировал лишнего" - это от невежества и просто пляски с бубном. - SciFi(23.12.2015 19:02)
- n=0..31 - 3m(23.12.2015 20:47)
- По-моему, до нативного он оптимизирует. То есть до 16 или до 32, в зависимости от того, чему равен int неуказанной длины. Но вообще вроде 1L<<n это по-уму пишется, не? - Николай Коровин(23.12.2015 19:17)
- Не скажу за ARM, но IAR для 8-бит AVR и MPLAB C18 поступали именно так. Tech2(217 знак., 23.12.2015 18:48)