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

Discussion in 'Машинное отделение' started by WinPooh, 29 Jun 2007.

  1. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.494
    Likes Received:
    3.127
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Люди, а зачем вам стандартное календарное время, если не секрет? Движок должен учитывать часовой пояс, и играть в пятницу не так, как во вторник? :)

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

    WinPooh В.М.

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.494
    Likes Received:
    3.127
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Правда, есть у 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 Коршунов Игорь

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Нужно для имени лог-файла.
  4. MikhailK Mikhail Kalenkov

    • Участник
    Member Since:
    12.10.2006
    Message Count:
    454
    Likes Received:
    0
    Репутация:
    0
    Location:
    Moscow
    Оффлайн
    Забавно, что я функцию localtime использовал абсолютно с той же целью. :)
  5. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    А что не так с GetSystemTime?
  6. MikhailK Mikhail Kalenkov

    • Участник
    Member Since:
    12.10.2006
    Message Count:
    454
    Likes Received:
    0
    Репутация:
    0
    Location:
    Moscow
    Оффлайн
    непортабельно.
  7. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    С одной винды на другую не портируется? :)
    Самое надежное - использовать Win Api
    Даже в Аксапте работает :cool:
  8. MikhailK Mikhail Kalenkov

    • Участник
    Member Since:
    12.10.2006
    Message Count:
    454
    Likes Received:
    0
    Репутация:
    0
    Location:
    Moscow
    Оффлайн
    А я не винды имел ввиду. :)
  9. WildCat Коршунов Игорь

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Почитай мой пост выше. На 9-ом интеле уже непонятно каким боком надо использовать это винапи, чтобы оно работало.
  10. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    LPTSTR это не char* Может в этом дело?
  11. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    sizeof(TCHAR) что дает?
  12. WildCat Коршунов Игорь

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Раньше всегда был char *. В хелпе написано так, что сразу не поймешь что же это такое.
  13. MikhailK Mikhail Kalenkov

    • Участник
    Member Since:
    12.10.2006
    Message Count:
    454
    Likes Received:
    0
    Репутация:
    0
    Location:
    Moscow
    Оффлайн
    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 Коршунов Игорь

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Нашел в чем была проблема.
    По умолчанию визуал теперь ставит Character Set = Use Unicode Character Set :mad:
  15. WildCat Коршунов Игорь

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Есть вопрос по Дельфи.
    Есть чужие исходники, которые нужно доводить до ума.
    В них есть два разных типа (интерфейса) с одинаковым названием, объявленных в разных модулях.

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

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

    • Участник
    Member Since:
    17.07.2007
    Message Count:
    25
    Likes Received:
    0
    Репутация:
    0
    Оффлайн
    ИмяМодуля.{ТипДанных|Переменная|..пр..}
  17. WildCat Коршунов Игорь

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

    • Участник
    Member Since:
    17.07.2007
    Message Count:
    25
    Likes Received:
    0
    Репутация:
    0
    Оффлайн
    Можно использовать RXLib или его форки, там есть юнит (помнится StrUtils)
    с функциями для лексического разбора. Почти точно такие же есть в FIBPlus.
    Даже не обязательно ставить пакет в IDE, можно просто выдернуть нужные
    процедуры из установочного архива в свой юнит.
  19. WildCat Коршунов Игорь

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Т.е. стандарные средства паскаля не могут этого обеспечить?
  20. kakotkin Учаcтник

    • Участник
    Member Since:
    17.07.2007
    Message Count:
    25
    Likes Received:
    0
    Репутация:
    0
    Оффлайн
    Да, аналога scanf за столько лет не появилось. Наверно мало кому нужен был.
    PascalWay: читать строку целиком, а потом разбирать. Или своей функцией,
    или чужой библиотечной. Типа такой:
    http://www.sources.ru/pascal/string/extrword.htm
  21. krey Михаил Кройтор

    • Команда форума
    Member Since:
    10.04.2006
    Message Count:
    3.709
    Likes Received:
    50
    Репутация:
    1
    Location:
    Кишинев
    Оффлайн
    Походил на блог Зуева (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...

Share This Page