一个比较简单的getopt,多平台通用
#include "stdio.h"char * host=0;int port=0;int is_show_help=0;#define true 1#define false 0typedef int bool;bool getoption(int argc,char ** argv){ char * p=0; for(int i=1;i %s\n",argv[i-1]); return false; } while(*p) { switch(*p++) { case '?':{ //printf("-h"); is_show_help=1; break; } case 'h':{ if (argv[++i]){ //printf("param -h=%s\n",argv[i]); host=argv[i]; } break; } case 'p':{ if (argv[++i]){ /* printf("param -p=%d\n",atoi(argv[i])); */ port = atoi(argv[i]); } break; } default:{ break; } } } } return true;}int main(int argc,char ** argv){ if (! getoption(argc,argv) ) { printf("param error\n"); return 1; } if (is_show_help){ printf("help!!!!!!!help me!\n"); return 0; } if (host!='\0'){ printf("host is -> %s \n",host); } if (port != 0){ printf("port is -> %d \n",port); }}