0
的代碼塊下面列出我發現在PPP項目的chat.ca模塊代碼塊,但我無法理解
/*************** Micro getopt() *********************************************/
#define OPTION(c,v) (_O&2&&**v?*(*v)++:!c||_O&4?0:(!(_O&1)&& \
(--c,++v),_O=4,c&&**v=='-'&&v[0][1]?*++*v=='-'\
&&!v[0][1]?(--c,++v,0):(_O=2,*(*v)++):0))
#define OPTARG(c,v) (_O&2?**v||(++v,--c)?(_O=1,--c,*v++): \
(_O=4,(char*)0):(char*)0)
#define OPTONLYARG(c,v) (_O&2&&**v?(_O=1,--c,*v++):(char*)0)
#define ARG(c,v) (c?(--c,*v++):(char*)0)
static int _O = 0; /* Internal state */
/*************** Micro getopt() *********************************************/
我知道這個宏用於獲得主要功能的ARGS ,但沒有完全理解它。 現在問題是_O在這個區塊中的含義是什麼,它是如何工作的。
這只是一個正常的靜態變量。它會在不同的宏中分配不同的值。至於它的用途?它是*內部的*,你不需要擔心什麼。 –
http://en.wikipedia.org/wiki/Getopt – hit
這是誰? – alk