Какие есть альтернативы операторам switch-case в C? - PullRequest
0 голосов
/ 07 марта 2019

Вот мой код ниже:

while ( ( c = getopt( argc, argv, "s:E:b:t:vh" ) ) != -1 )
{
  switch ( c )
  {
     case 's':
        params.s = atoi( optarg );
        break;
     case 'E':
        params.E = atoi( optarg );
        break;
     case 'b':
        params.b = atoi( optarg );
        break;
     case 't':
        trace_file = optarg;
        break;
     case 'v':
        verbosity = 1;
        break;
  }
}

1 Ответ

0 голосов
/ 07 марта 2019

Но чтобы ответить на вопрос, вы можете использовать несколько операторов if / else:

while ( ( c = getopt( argc, argv, "s:E:b:t:vh" ) ) != -1 )
{
    if ( c == 's' )
    {
        params.s = atoi( optarg );
    }
    else if ( c == 'E' )
    {
        params.E = atoi( optarg );
    }
    else if ( c == 'b' )
    {
        params.b = atoi( optarg );
    }
    else if ( c == 't' )
    {
        trace_file = optarg;
    }
    else if ( c == 'v' )
    {
        verbosity = 1;
    }
    else
    {
        // always have some kind of default clause
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...