main函式引數規範

2021-10-11 04:13:34 字數 1911 閱讀 7971

給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 引數,陣列裡每個元素代表乙個引數 ...