для бумаги Я ищу реальную C функцию, которая использует переменные. Само по себе это не трудно найти, но я ищу функцию, в которой значение изменчивой переменной должно измениться в течение хода выполнения функции, для определенной ветви функции, чтобы быть достигнутым. Как то так:
typedef struct {
unsigned :6;
unsigned FLAG1 :1;
unsigned FLAG2 :1;
} __attribute__ ((packed)) REGISTER;
volatile REGISTER * io_ = 0x1234;
int write_to_io()
{
while (io_->FLAG1) {};
//io_->FLAG1 is now 0
io_->FLAG2 = 1;
sleep(10);
if (io->FLAG1)
return 1; //io->FLAG1 has changed from 0 to 1
else
return 0; //io->FLAG1 has not changed
}
Было бы достаточно, если во время выполнения функции изменились разные биты структуры, но мой главный критерий состоит в том, что для достижения определенной ветви значение изменчивой переменной изменяется в течение выполнение функции.
Буду очень признателен за любые примеры из жизни. Мне не удалось найти много примеров использования volatile в Интернете.