Windows C 上GetOpt功能的替代方法是什么?

What is the alternative to getopt function on Windows c++?

本文关键字:方法 是什么 GetOpt 功能 Windows      更新时间:2023-10-16

下面的代码我正在使用posix c:

while ((opt = getopt(argc, argv, "a:p:h")) != -1)

如何使用替代功能将此代码移植到Windows C ?

谢谢

Microsoft在这里可以重新使用开源IOTITION项目中提供了一个不错的实现(以及其他一些帮助者)(等待您可能拥有的任何许可要求):p>查看" src"answers" inclage"在此处的"目录"。在

如果您搜索过的话,您会找到另一个线程,该线程涉及基于Windows的Systems的GetOpt的某些兼容性库。

getopt.h:在Windows中编译Linux C代码

在另一个注意事项上,您始终可以使用va_arg,va_list,va_start和va_end函数来处理参数。

/* va_arg example */
#include <stdio.h>      /* printf */
#include <stdarg.h>     /* va_list, va_start, va_arg, va_end */
int FindMax (int n, ...)
{
  int i,val,largest;
  va_list vl;
  va_start(vl,n);
  largest=va_arg(vl,int);
  for (i=1;i<n;i++)
  {
    val=va_arg(vl,int);
    largest=(largest>val)?largest:val;
  }
  va_end(vl);
  return largest;
}
int main ()
{
  int m;
  m= FindMax (7,702,422,631,834,892,104,772);
  printf ("The largest value is: %dn",m);
  return 0;
}

参考:http://www.cplusplus.com/reference/cstdarg/va_list/