Ничто в стандарте C не наложило никаких требований на то, что система могла бы сделать с выражением. При написании стандарта было бы разумно вызвать следующую последовательность событий во время выполнения:
b
. Сама суть того, что в то время означало неопределенное поведение.
Обратите внимание, что большая часть компиляторы, появившиеся с первых дней C, будут рассматривать адрес члена объекта, расположенного на постоянном адресе, как константу времени компиляции, но я не думаю, что такое поведение vior был назначен, и ничто не было добавлено к стандарту, который бы определял, что вычисления адресов времени компиляции с использованием нулевых указателей должны быть определены в тех случаях, когда вычисления во время выполнения не будут.