Вопросы по С/С++ (СИ)

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Вопросы по С/С++ (СИ)

Сообщение a_skr »

более того, переменная видна только внутри блока - фигурных скобок.

Код: Выделить всё

function()
{
  int var;
  ...
  if(...)
  {
    int var;
    ...
  }
  else
  {
    int var;
    ...
  }
}
здесь var - три разные переменные
Реклама
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Вопросы по С/С++ (СИ)

Сообщение FreshMan »

нифигасе :shock:
вы для меня Африку открыли
а в каких официальных документах можна почитать о вами сказанном ?
Tell Me The Truth
Реклама
Аватара пользователя
blackx
Говорящий с текстолитом
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Re: Вопросы по С/С++ (СИ)

Сообщение blackx »

Вот текст стандарта:
http://www.open-std.org/jtc1/sc22/wg14/ ... /n1570.pdf
но в 90% случаев хватает книжки Кернигана и Ричи.
Изображение only pure true norwegian blackx Изображение
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Вопросы по С/С++ (СИ)

Сообщение FreshMan »

мслышал такое утверждение что декремент быстрее выполняется чем инкремент
правда ли это ?
чем сие обусловлено
Tell Me The Truth
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Вопросы по С/С++ (СИ)

Сообщение Gudd-Head »

Хм.
Если надо просто организовать счётчик итераций, скажем, на 10, то его можно сделать 2-мя способами: считать от 1 до 10 или от 9 до 0.
В первом случае после инкремента придётся сравнивать счётчик с константой, во втором — после декремента просто проверить результат на ноль.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Вопросы по С/С++ (СИ)

Сообщение ploop »

Ну, что-то терять проще, чем что-то приобретать :)

А если серьёзно, то где такое могли сказать? Си транслирует их в команды inc и dec, которые исполняются ровно один такт.

А уж организация циклов к вопросу не относится :)
Реклама
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Вопросы по С/С++ (СИ)

Сообщение Gudd-Head »

ploop писал(а):Си транслирует их в команды inc и dec, которые исполняются ровно один такт.
Для цикла с инкрементом появится ещё CPI помимо BRNE [AVR]. А так да, один х*й.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Вопросы по С/С++ (СИ)

Сообщение FreshMan »

ploop писал(а):А если серьёзно, то где такое могли сказать?
http://chipenable.ru/index.php/programm ... -code.html
3.3 Совет #3 - индекс цикла
Tell Me The Truth
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Аlex »

FreshMan писал(а):3.3 Совет #3 - индекс цикла
Там говориться не о скорости выполнения декремента/инкремента, а об эффективности создания циклов. Так что вопрос
что декремент быстрее выполняется чем инкремент
правда ли это ?
не совсем корректен. Выполняются они по времени одинаково.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Вопросы по С/С++ (СИ)

Сообщение Gudd-Head »

FreshMan писал(а):индекс цикла
Таки я экстрасенс 8)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Аlex »

Gudd-Head писал(а):Таки я экстрасенс 8)
Побольше бы таких на форуме 8)
:))
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение YS »

Таки я экстрасенс
Да ну, фигня! :wink: Я тоже так умею. :)))
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Вопросы по С/С++ (СИ)

Сообщение ploop »

Интересно, что это компилятор таким кодом сказать хотел? :)))

Код: Выделить всё

 448:	80 91 71 00 	lds	r24, 0x0071
 44c:	90 91 72 00 	lds	r25, 0x0072
 450:	80 91 71 00 	lds	r24, 0x0071
 454:	90 91 72 00 	lds	r25, 0x0072
 458:	80 91 71 00 	lds	r24, 0x0071
 45c:	90 91 72 00 	lds	r25, 0x0072
 460:	80 91 71 00 	lds	r24, 0x0071
 464:	90 91 72 00 	lds	r25, 0x0072
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение YS »

Интересно... :))
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
blackx
Говорящий с текстолитом
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Re: Вопросы по С/С++ (СИ)

Сообщение blackx »

Компиляторам тоже бывает скучно... :)
Изображение only pure true norwegian blackx Изображение
Аватара пользователя
Psych
Опытный кот
Сообщения: 848
Зарегистрирован: Ср мар 02, 2011 07:47:39
Откуда: Уфа

Re: Вопросы по С/С++ (СИ)

Сообщение Psych »

[quote="ploop"]Интересно, что это компилятор таким кодом сказать хотел? :)))

Ну чтоб наверняка) ... мб это константы?
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Вопросы по С/С++ (СИ)

Сообщение Kavka »

ploop писал(а):Интересно, что это компилятор таким кодом сказать хотел? :)))
Мнда, весёленько.
Если оптимизация включена была, то "Dead load reduction", или как там оно у них называется, не сработало, однако. Да причём не хило так. :shock:
Или это, таки, с выключенной оптимизацией получено? Тогда вполне себе может быть.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Вопросы по С/С++ (СИ)

Сообщение ploop »

Или это, таки, с выключенной оптимизацией получено?
Оптимизация включена (-Os). Собственно, в коде была тупейшая строка с битовыми масками и сдвигами переменных, которую я родил в два часа ночи (жалею, что не сохранил), которая и не должна была работать.

Компилятор её молча проглотил, но мог бы что-нибудь поумнее родить :)
AaNnDdRrEeYy
Встал на лапы
Сообщения: 100
Зарегистрирован: Ср дек 24, 2008 11:59:24
Откуда: Москва

Преобразовать int в 2 char и обратно.

Сообщение AaNnDdRrEeYy »

Добрый день.
Есть переменная типа int например 0b0100000000000010
мне нужно перевести ее в две переменных типа char
должно получится так
0b01000000
0b00000010

подскажите как это сделать на C
phenomen
Потрогал лапой паяльник
Сообщения: 310
Зарегистрирован: Пт дек 17, 2010 14:41:25

Re: Преобразовать int в 2 char и обратно.

Сообщение phenomen »

16 бит для интового числа в си - это минимум!
А запихнуть 8*n - битное число в n 8-ми битных (например 32-битное в четыре 8-ми битных) можно операциями побитового сдвига и наложения маски с помощью операции побитового И
Ответить

Вернуться в «Разные вопросы по МК»