Перейти к содержанию

    

inventor

Свой
  • Публикаций

    560
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о inventor

  • Звание
    Знающий
  • День рождения 18.02.1969

Информация

  • Город
    Москва

Посетители профиля

3 693 просмотра профиля
  1. забавная статья про volatile http://www.cs.utah.edu/~regehr/papers/emsoft08-preprint.pdf
  2. хорошо. Такой вопрос' когда использование volatile нежелательно и может испортить работу программы?
  3. но она работает кстате. lwip 1.3.2 volatile переменная объявлена всего один раз
  4. а что входит? не является ли этот волатайл такой же ненужной штукой как auto в C?
  5. почему же, если при оптимизации пишешь local_time как volatile - то она работает как задержка а если нет-то не работает разный результат
  6. если предположим функция будет давать на выходе разный результат при исползовании оптимизаора и не то и наблюдаемое поведение будет разным разве не так?
  7. Стандарт подходит к объяснению того, что компилятор должен сохранять наблюдаемое поведение при выполнении оптимизации. http://qaru.site/questions/2132338/does-c99-standard-define-observable-behavior-as-c03-does
  8. в иаре #pragma optimize=none жаль нету #pragma push и #pragma pop
  9. ну зачем то он стоит, может сам оптимизатор должен не так работать, почему я должен предугадывать как поведет себя в какой то ситуации может опцию предусмотреть ну типа #optimize_that ... какой то код #end_optimize а все что не оформлено такими рамками-не трогать в этом случае это было бы правильнее поведение я так думаю
  10. то есть по мнению оптимизатора - действия с переменной - это бесполезные действия, который можно выкинуть.
  11. в чем правильное? u32 local_time; void Delay(int timer) { s32 t = local_time; while(local_time - t < timer){ asm("nop"); } } работает с оптимизацией без volatile если asm Закоментить не работает
  12. возвращаясь к моему первому посту где определена задержка, по моему мнению это не правильное поведение компилятора со включенной оптимизацией где без volatile работать не будет
  13. мне нравица ваша убежденность. это не оптимизация, но все же... /** * Кто то из нас готов - разбираем. * таймаут ставим в ноль, иначе функция select не работает! * В это случае сразу будет выходить если нет готового дескриптора * а если передать NULL - то работает неправильно!!! * не стал исправлять lwip_select()! */ t0.tv_sec = 0; t0.tv_usec = 0; memcpy(&rfds, &readfds, sizeof(rfds)); n = -1; if (select(maxfd + 1, &rfds, NULL, NULL, &t0) > 0) { for (i = 0; i < MAX_ETH_NUM; i++) { if (FD_ISSET(sockfd[i], &rfds)) { n = i; break; } } } вот сразу пример из lwip с которым я провозился несколько дней.
  14. речь шла оптимизации как таковой предыдущие ораторы накинулись на меня, назвав лохом что мол прога должна работать при любой оптимизации