как работает switch?
От: brig  
Дата: 01.08.07 10:08
Оценка:
Вот тестовый пример:
#include <iostream>

int main()
{
   std::cout << "test with std::string" << std::endl;
   std::string str = "123";
   str[ 0 ] = 0xfe;
   switch( s[ 0 ] )
   {
       case 0xfe:
           // Предполагалось, что окажемся здесь...
           std::cout << "case 0xfe" << std::endl;
           break;
       default:
           // ... но попали сюда((
           std::cout << "default s[ 0 ]" << std::endl;
   };

   std::cout << "test simple char" << std::endl;
   char ch = 0xfe;
   switch( ch )
   {
        case 0xfe:
            std::cout << "case 0xfe" << std::endl;
            break;
        default:
            std::cout << "default" << std::endl;
   };

   return( 0 );
}


В результате получаем:
test with std::string
default s[ 0 ]
test simple char
case 0xfe

Почему в первом варианте попадаем в default?

p.s.: Компилятор gcc version 4.1.1 20060629
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.