Это относится только к переменным, которые используются как в обработчике сигнала, так и вне его.
Любые другие переменные (не используемые в обработчике или используемые только в обработчике) являются безопасными (определенными).
Например, допустим, у вас есть глобальная переменная, которая используется внутри обработчика сигнала и в другой функции, чем эта переменная должна быть либо volatile-неблокируемой atomi c переменная, либо volatile sig_atomic_t.
Any переменные из других разделяемых типов переменных могут действительно быть неопределенными. Например, если это было изменено обработчиком, старое значение могло бы все еще использоваться в функции, которую мы остановили в середине, однако возможно, что будет использоваться новое значение (в non atomi c возможно, может быть использована некая комбинация - что может быть полной чепухой), как и сказано, это будет неопределенным Предположим, что вы должны использовать Atom c, когда это необходимо. Var должен быть volatile, так как используется в середине функции, см. { ссылка }.