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

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

  1. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Люди, а зачем вам стандартное календарное время, если не секрет? Движок должен учитывать часовой пояс, и играть в пятницу не так, как во вторник? :)

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

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    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 Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Нужно для имени лог-файла.
  4. MikhailK Mikhail Kalenkov

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

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

    • Участник
    Рег.:
    12.10.2006
    Сообщения:
    454
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Moscow
    Оффлайн
    непортабельно.
  7. NS Нефёдов Сергей

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

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

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

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

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

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

    • Участник
    Рег.:
    12.10.2006
    Сообщения:
    454
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    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 Коршунов Игорь

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

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

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

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

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

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

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

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

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

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    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...

Поделиться этой страницей