Обсуждаем компиляторы

Тема в разделе "Машинное отделение", создана пользователем WinPooh, 29 июн 2007.

  1. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Люди, а зачем вам стандартное календарное время, если не секрет? Движок должен учитывать часовой пояс, и играть в пятницу не так, как во вторник? :)

    Мне всегда казалось, что шахматная программа должна измерять интервалы времени между двумя событиями - а именно, началом и концом счёта или текущим моментом. Для этого вполне достаточно стандартной функции clock(), возвращающей число тиков с момента старта потока. И есть она абсолютно на всех платформах. Потому что стандарт...
     
  2. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Правда, есть у clock одна засада, о которой надо знать:

    The value returned by clock() is defined in microseconds for
    compatibility with systems that have CPU clocks with much
    higher resolution. Because of this, the value returned will
    wrap around after accumulating only 2147 seconds of CPU time
    (about 36 minutes).
     
  3. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Нужно для имени лог-файла.
     
  4. MikhailK
    Оффлайн

    MikhailK Mikhail Kalenkov

    Репутация:
    0
    Забавно, что я функцию localtime использовал абсолютно с той же целью. :)
     
  5. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    А что не так с GetSystemTime?
     
  6. MikhailK
    Оффлайн

    MikhailK Mikhail Kalenkov

    Репутация:
    0
    непортабельно.
     
  7. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    С одной винды на другую не портируется? :)
    Самое надежное - использовать Win Api
    Даже в Аксапте работает :cool:
     
  8. MikhailK
    Оффлайн

    MikhailK Mikhail Kalenkov

    Репутация:
    0
    А я не винды имел ввиду. :)
     
  9. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Почитай мой пост выше. На 9-ом интеле уже непонятно каким боком надо использовать это винапи, чтобы оно работало.
     
  10. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    LPTSTR это не char* Может в этом дело?
     
  11. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    sizeof(TCHAR) что дает?
     
  12. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Раньше всегда был char *. В хелпе написано так, что сразу не поймешь что же это такое.
     
  13. MikhailK
    Оффлайн

    MikhailK Mikhail Kalenkov

    Репутация:
    0
    http://msdn2.microsoft.com/en-us/library/ms776419.aspx

    http://msdn2.microsoft.com/en-us/library/aa367308.aspx
    http://msdn2.microsoft.com/en-us/library/aa383751.aspx
    Может поможет...
     
  14. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Нашел в чем была проблема.
    По умолчанию визуал теперь ставит Character Set = Use Unicode Character Set :mad:
     
  15. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Есть вопрос по Дельфи.
    Есть чужие исходники, которые нужно доводить до ума.
    В них есть два разных типа (интерфейса) с одинаковым названием, объявленных в разных модулях.

    Возникает конфликт имен. Компилятор хочет подсунуть не тот тип, который мне нужен и выдает ошибки компиляции. Как можно явно указать из какого модуля тип я хочу использовать?

    На плюсах эта неоднозначность разрешается например так somenamespace::ambiguoustype. А как быть с Дельфи?
     
  16. kakotkin
    Оффлайн

    kakotkin Учаcтник

    Репутация:
    0
    ИмяМодуля.{ТипДанных|Переменная|..пр..}
     
  17. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Еще вопрос по Дельфи.
    Известно, что в файле строка состоит из двух слов и одного числа.
    Конечно, хотелось бы сделать так: readln(f, str1, str2, int1);.
    Но вся строка считывается в первую переменную. Пришлось делать спецфункцию для чтения одного слова посимвольно. Можно это как-то по-людски сделать?
     
  18. kakotkin
    Оффлайн

    kakotkin Учаcтник

    Репутация:
    0
    Можно использовать RXLib или его форки, там есть юнит (помнится StrUtils)
    с функциями для лексического разбора. Почти точно такие же есть в FIBPlus.
    Даже не обязательно ставить пакет в IDE, можно просто выдернуть нужные
    процедуры из установочного архива в свой юнит.
     
  19. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Т.е. стандарные средства паскаля не могут этого обеспечить?
     
  20. kakotkin
    Оффлайн

    kakotkin Учаcтник

    Репутация:
    0
    Да, аналога scanf за столько лет не появилось. Наверно мало кому нужен был.
    PascalWay: читать строку целиком, а потом разбирать. Или своей функцией,
    или чужой библиотечной. Типа такой:
    http://www.sources.ru/pascal/string/extrword.htm
     
  21. krey
    Оффлайн

    krey Михаил Кройтор Команда форума Команда форума

    Репутация:
    1
    Походил на блог Зуева (http://zouev.blogspot.com/2008/04/blog-post_28.html) - вспомнил его стаью "Редкая профессия". После этого заинтересовался нераспространёнными компиляторами, в частности у Страуструпа можно найти маленький список. Скачал и установил к cуществующим на машине gcc 3.4.2 (MingW и CygWin), Intel C++ 10.1, MS VC++ 2008, Digital Mars 8.42n еще 3 - OpenWatcom 1.7, PGI 7.2-3, Ch Standard 6.0. Заинтересовался их тестами - однако довольно широких не нашел. Что нашлось:
    http://www.amd64.ru/index.php?link=2&addr=4&page=6&cmp=1 - Сравнение компиляторов PathScale и PGI по функциональности;
    http://itc.ua/node/15800 - не только С++ компиляторы, не только под винду;
    http://www.itc.ua/forum/showthread.php?t=2826 - интересное обсуждение предыдущей ссылки;
    http://satsky.spb.ru/articles/CPPPerformance/CPPPerformanceArticle.php - разные версии gcc + Intel 9.1 на разных платформах (описываются тесты, маст рид).

    в общем, можно найти еще ссылки, однако они окажутся недостаточными. существует много специализированных, малопопулярных, коммерческих компиляторов, которые в тесты не включались.

    зы: а вот совсем интересное - кто-то пытается перевести стандарт С++ - http://ysoft.ru/main/ShowId=1021_010.html А ведь в сентябре выходит новый стандарт - С++0x...