Я пишу компилятор C, и когда я пришел к реализации оператора switch
, одно ограничение меня сильно смутило. Раздел 6.8.4.2p2 стандарта гласит:
Если у оператора switch есть связанный регистр или метка по умолчанию внутри область идентификатора с изменяемым типом, весь оператор switch должен находиться в пределах этого идентификатора.
Сноска:
То есть объявление либо предшествует оператору switch, либо оно следует за последним регистром или меткой по умолчанию, связанной с коммутатором, который находится в блоке, содержащем объявление.
Я не могу понять, что означает это ограничение. Кто-нибудь может дать мне пример?