在c中从main调用switch语句

时间:2014-10-01 19:22:13

标签: c

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
void GetOption(int argc, char * argv[]);
int main() {
  int argc;
  char argv;
  argv = GetOption(argc, argv);
  //argv=GetOption(argv);
  /* Character buffer. */
}
void GetOption(int argc, char * argv[]) {
  int m, n, /* Loop counters. */
  l, /* String length. */
  x, /* Exit code. */
  ch;
  for (n = 1; n < argc; n++) /* Scan through args. */ {
    switch ((int) argv[n][0]) /* Check for option character. */ {
      case '-':
      case '/':
        x = 0; /* Bail out if 1. */
        l = strlen(argv[n]);
        for (m = 1; m < l; ++m) /* Scan through options. */ {
          ch = (int) argv[n][m];
          switch (ch) {
            case 'a':
              /* Legal options. */
            case 'A':
            case 'b':
            case 'B':
            case 'x':
            case 'X':
            case 'v':
            case 'V':
            case 'z':
            case 'Z':
            case 'r':
            case 'R':
              printf("Argument = %c called\n", ch);
              break;
            default:
              printf("Illegal option code = %c\n", ch);
              x = 1; /* Not legal option. */
              //exit(1);
              //break;
          }
        }
    }
  }
}  

我试图从main调用switch语句但我不能。我指定了我想要使用的案例,但是可以从main调用switch case吗?我应该将包含switch语句的第二个函数转换为if语句吗?

2 个答案:

答案 0 :(得分:1)

将main的声明更改为:

int main(int argc, char * argv[]) {..

然后摆脱两个当地人:

  int argc;
  char argv;

然后看看你是怎么过的。

哦 - 并修复@Fred和其他人发布的返回类型和其他内容:)

答案 1 :(得分:0)

int main(int argc, char * argv[])

{

GetOption(argc,argv);

}