|
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 23
|
|||||||
| 06.01.2013, 19:51 | |||||||
|
Хочу разобраться в работе volatile и для чего он нужен...
0
|
|||||||
| 06.01.2013, 19:51 | |
|
Ответы с готовыми решениями:
29
И снова volatile. Глобальный массив, изменяемый в обработчике прерывания, должен быть volatile?
|
|
|
||||||
| 06.01.2013, 20:54 | ||||||
|
Суть volatile не в этом. Это указание компилятору, что при каждом обращении к переменной нужно заново считываеть ее значение из памяти. Например
1. прочитать значение c 2. передать значение c на печать 3. поспать 10 секунд 4. передать значение c на печать а с volatile это будет так 1. прочитать значение c 2. передать значение c на печать 3. поспать 10 секунд 4. прочитать значение c 5. передать значение c на печать т.е. компилятор понимает, что во время выполнение sleep() значение c могло измениться и его нужно получить по новой.
2
|
||||||
|
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 23
|
|
| 06.01.2013, 21:01 | |
|
ага, тоесть этот момент: int b = time(NULL) оно заново не делает...
0
|
|
|
|
||
| 07.01.2013, 08:47 [ТС] | ||
|
Инициализация статического массива Пример использования спецификатора volatile
0
|
||
|
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 23
|
|
| 07.01.2013, 15:11 | |
|
о! я какрас и читаю єту книгу Шилдта, вот с этим временем я и завелся.....
0
|
|
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
|||||||||||||||||
| 17.07.2019, 14:58 | |||||||||||||||||
iii, компилятор должен каждый раз честно вычитывать из памяти? Что происходит в этом коде? Можете объяснить суть проблем? (Их там две) https://rextester.com/NRX37053
локальная переменная-аргумент data завершится сразу как завершится функция, и ссылка r2 станет невалидной.Но так как она будет указывать на переменную v,то значение такой ссылки получается консистентным. Если бы не предупреждение компилятора, этот баг бы ещё не скоро нашли. Что означает ?
0
|
|||||||||||||||||
|
|
|
| 17.07.2019, 16:19 [ТС] | |
|
Строго говоря, тсвой вопрос к изначальной постановке вопроса отношения не имеет. Вопрос касается только volatile'а и особенностей работы с ним на C++
Пример сократил, чтобы убрать лишнюю шелуху, которая может вводить в заблуждение. Например, const тут не при чём, указатели не при чём, да и большинство из имеющихся в наличии volatile'ов тоже не при чём. Я не специалист в Си++. Я знаю, что такое ссылка и как она реализуется в виде кода, но не знаю всяких тонкостей стандарта, с ней связанных. Поэтому здесь в общем-то высказываю свои соображения, но НЕ позиционирую их как истину, вытекающую из стандарта C int volatile vv; int main() { int volatile &r = vv; (void)r; } Code $ g++-7.3.0 t.cc -O3 -S t.cc: In function 'int main()': t.cc:6:9: warning: conversion to void will not access object of type 'volatile int' (void)r; ^ $ cat t.s ... main: xorl %eax, %eax ret ...
1
|
|
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|
| 17.07.2019, 19:00 | |
|
0
|
|
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
|
| 19.07.2019, 17:30 | |
|
0
|
|
| 19.07.2019, 17:30 | |
|
Заменить volatile на Thread.MemoryBarrier. Код приведён. Как оптимизировать обращения для чтения к volatile полю класса? int const * const foo(const int* param) const - разъясните значение квалификаторов int\ volatile int \ const int
Что это bool operator== (const CLASS&) const; Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|