給main函式傳遞引數,非常容易,而且每個人都有自己的編寫方式;
這裡介紹一下標準c庫的getopt規範,該規範定義了兩類引數:短引數和長引數
#include
#include
/*幫助*/
static
void
usage
(file *fp,
int argc,
char
*ar**)
/*短引數*/
static
const
char short_options=
"d:h"
;/*長引數*/
static
const
struct option long_options=
,,,}
;int
main
(int argc,
char
*ar**)
}
static
const
char short_options=
"d:h"
;
d:
表示d這個標誌後面會跟乙個具體引數值;
h
表示h這個標誌後面沒有具體引數值;
static
const
struct option long_options=
,,,}
;
device, required_argument表示有乙個具體引數值;
help, no_argument表示沒有具體引數值;
int
getopt_long
(int argc,
char
*const ar**,
const
char
*optstring,
const
struct option *longopts,
int*longindex)
;
argc和ar**是main函式的引數,直接傳入;
optstring,短引數格式定義;
longopts,長引數格式定義;
longindex,引數位置
全域性變數optarg,如果某個標誌有具體的值,那麼引數可以通過optarg直接獲得。
請直接在linux命令列中man getopt
#include
intgetopt
(int argc,
char
*const ar**,
const
char
*optstring)
;extern
char
*optarg;
extern
int optind, opterr, optopt;
#include
intgetopt_long
(int argc,
char
*const ar**,
const
char
*optstring,
const
struct option *longopts,
int*longindex)
;int
getopt_long_only
(int argc,
char
*const ar**,
const
char
*optstring,
const
struct option *longopts,
int*longindex)
;
main函式引數
函式的引數 前面介紹的main函式都是不帶引數的。因此main 後的括號都是空括號。實際上,main函式可以帶引數,這個引數可以認為是 main函式的形式引數。語言規定main函式的引數只能有兩個,習慣上這兩個引數寫為argc和argv。因此,main函式的函式頭可寫為 main argc,argv...
main函式引數
習題1 main函式的引數 include include include int main int argc,char argv,char envp else if strcmp s argv 1 0 else if strcmp m argv 1 0 else if strcmp d argv ...
main函式引數
argc是命令列總的引數個數 ar 是argc個引數,其中第0個引數是程式的全名,以後的引數命令列後面跟的使用者輸入的引數,比如 int main int argc,char ar char ar 是乙個字元陣列,其大小是int argc,主要用於命令列引數 ar 引數,陣列裡每個元素代表乙個引數 ...