LINUX.ORG.RU

История изменений

Исправление Stanson, (текущая версия) :

Я вот недавно удивлялся, почему в case указатели нельзя использовать.

Прекрасно можно использовать. Просто в case же придётся писать константы, т.е. конкретные адреса, которые, очевидно, на момент написания программы неизвестны. Однако, если речь о заранее известных на момент компиляции адресах регистров или фиксированных областях типа каких-нибудь векторов прерываний, то всё прекрасно пишется, компилируется и работает.

Строковые константы вполне может обрабатывать компилятор на этапе компиляции и соответственно использовать strcmp, например, для сравнения.

Но это не больше чем синтаксический сахар, просто чтобы вместо лесенок с strcmp и скобкотой писать несколько более удобочитаемые case, только и всего.

Ну и switch() это не синтаксический сахар над каскадными if-ами, если что, а штука для использования таблиц переходов. Со строками это опять же невыполнимо.

Да неужели. Таблицы переходов со строками ещё в софте для ZX Spectrum использовались как нефиг делать. Да и case далеко не всегда в таблицы переходов компилируется.

Исправление Stanson, :

Я вот недавно удивлялся, почему в case указатели нельзя использовать.

Прекрасно можно использовать. Просто в case же придётся писать константы, т.е. конкретные адреса, которые, очевидно, на момент написания программы неизвестны. Однако, если речь о заранее известных на момент компиляции адресах регистров или фиксированных областях типа каких-нибудь векторов прерываний, то всё прекрасно пишется, компилируется и работает.

Строковые константы вполне может обрабатывать компилятор на этапе компиляции и соответственно использовать strcmp, например, для сравнения.

Но это не больше чем синтаксический сахар, просто чтобы вместо лесенок с strcmp и скобкотой писать несколько более удобочитаемые case, только и всего.

Ну и switch() это не синтаксический сахар над каскадными if-ами, если что, а штука для использования таблиц переходов. Со строками это опять же невыполнимо.

Да неужели. Таблицы переходов со строками ещё в софте для ZX Spectrum использовались как нефиг делать.

Исходная версия Stanson, :

Я вот недавно удивлялся, почему в case указатели нельзя использовать.

Прекрасно можно использовать. Просто в case же придётся писать константы, т.е. конкретные адреса, которые, очевидно, на момент написания программы неизвестны. Однако, если речь о заранее известных на момент компиляции адресах регистров или фиксированных областях типа каких-нибудь векторов прерываний, то всё прекрасно пишется, компилируется и работает.

Строковые константы вполне может обрабатывать компилятор на этапе компиляции и соответственно использовать strcmp, например, для сравнения.

Но это не больше чем синтаксический сахар, просто чтобы вместо лесенок с strcmp и скобкотой писать несколько более удобочитаемые case, только и всего.