![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Стандартные функции работы со строками(strcmp, strcpy e.t.c) отказываются работать с volatile char[] - вероятно нужны особые функции, учитывающие расположение в памяти и особенности volatile. Что подскажете ?
|
|||
|
||||
| Orlan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: нет Всего: 1 |
А зачем используется volatile, может проще добавить синхронизацию при помощи критических секций?
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
|||
|
||||
| Mayk |
|
||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
А если покастить?
Добавлено @ 17:59 Ну или для любителей с++ кастингов
Или даже
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||
|
|||||||
| Orlan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: нет Всего: 1 |
Если покастить, то, думаю, теряется смысл volatile
Думаю, что strcpy не ожидает что ей на вход прийдет "an object can be modified in the program by something such as the operating system, the hardware, or a concurrently executing thread" --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Если что-то объявлено как volatile, то это не означает что оно является таким на самом деле в любой момент времени своего существования. Так, например, мы можем объвить volatile char currentDir[];, в котором будет хранится текущая директория. Логично предположить, что в начале надо прочитать в неё какую-то директорию, а потом запустить отделный поток, который будет её активно менять. Но до момента запуска никто не должен измянить содержимое currentDir'а, так что strcpy() и пр. навряд ли помешают.
Еще можно понадеятся на то, что авось проскочит. Хотя, конечно, авось - зверёк тот еще. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| Helicopterr |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 20.8.2005 Где: Stavropol Репутация: 2 Всего: 3 |
En_t_end
может удобнее не использовать квалификатор volatile и разместить массив в файле на жёстком? -------------------- people can fly |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Нет все спасибо, действительно в моем случае кастинг к const char* и char* безглючный метод.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |