⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 longopt.c.texi

📁 一个C源代码分析器
💻 TEXI
字号:
#include <stdio.h>/* @r{Flag set by @samp{--verbose}.} */static int verbose_flag;intmain (argc, argv)     int argc;     char **argv;@{  int c;  while (1)    @{      static struct option long_options[] =        @{          /* @r{These options set a flag.} */          @{"verbose", 0, &verbose_flag, 1@},          @{"brief", 0, &verbose_flag, 0@},          /* @r{These options don't set a flag.             We distinguish them by their indices.} */          @{"add", 1, 0, 0@},          @{"append", 0, 0, 0@},          @{"delete", 1, 0, 0@},          @{"create", 0, 0, 0@},          @{"file", 1, 0, 0@},          @{0, 0, 0, 0@}        @};      /* @r{@code{getopt_long} stores the option index here.} */      int option_index = 0;      c = getopt_long (argc, argv, "abc:d:",                       long_options, &option_index);      /* @r{Detect the end of the options.} */      if (c == -1)        break;      switch (c)        @{        case 0:          /* @r{If this option set a flag, do nothing else now.} */          if (long_options[option_index].flag != 0)            break;          printf ("option %s", long_options[option_index].name);          if (optarg)            printf (" with arg %s", optarg);          printf ("\n");          break;        case 'a':          puts ("option -a\n");          break;        case 'b':          puts ("option -b\n");          break;        case 'c':          printf ("option -c with value `%s'\n", optarg);          break;        case 'd':          printf ("option -d with value `%s'\n", optarg);          break;        case '?':          /* @r{@code{getopt_long} already printed an error message.} */          break;        default:          abort ();        @}    @}  /* @r{Instead of reporting @samp{--verbose}     and @samp{--brief} as they are encountered,     we report the final status resulting from them.} */  if (verbose_flag)    puts ("verbose flag is set");  /* @r{Print any remaining command line arguments (not options).} */  if (optind < argc)    @{      printf ("non-option ARGV-elements: ");      while (optind < argc)        printf ("%s ", argv[optind++]);      putchar ('\n');    @}  exit (0);@}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -