每一個控制臺程序都是main函數(shù)開始的胖眷,當(dāng)我們看官方例程或網(wǎng)上的程序時加匈,很可能看到帶參數(shù)的main函數(shù)铁追,如:int main(int argc,char** argv)
然而這兩個參數(shù)其實(shí)完全可以不用憎兽,甚至不帶撑蚌,這此之前,我們還是要了解一下它們的作用是什么刽肠。
argc是argument counter的意思,用來統(tǒng)計程序運(yùn)行時傳給main函數(shù)的命令行參數(shù)
argv是argument vector的意思免胃,以“* argv[]”或“** argv”的形式出現(xiàn)音五,用來存放指向字符串參數(shù)的指針數(shù)組,每一個元素指向一個參數(shù)
帶參數(shù)的main函數(shù)如下:
int main(int argc,char** argv)
{
??? ...
}
這是與跨平臺環(huán)境相適應(yīng)的標(biāo)準(zhǔn)寫法羔沙,但我們暫時是在WINDOWS環(huán)境下做開發(fā)學(xué)習(xí)躺涝,所以我們用不帶參數(shù)的main函數(shù)。
一扼雏、參數(shù)具體含義
argc? 參數(shù)個數(shù)
argv[0]? 程序的全路徑名
argv[1]? 命令行程序執(zhí)行時第一個字符串參數(shù)
argv[2]? 命令行程序執(zhí)行時第二個字符串參數(shù)
argv[3]? 命令行程序執(zhí)行時第三個字符串參數(shù)
...
argv[argc]? NULL
如果在VS環(huán)境下進(jìn)行有參調(diào)試坚嗜,需要配置命令參數(shù):
點(diǎn)擊“項(xiàng)目”菜單->“屬性”,打開“屬性頁”對話框诗充,找到“調(diào)試”->“命令參數(shù)”中的“編輯”苍蔬,打開編輯框,將參數(shù)輸入蝴蜓,多個參數(shù)用空格隔開碟绑。
二、VS中main函數(shù)的幾種寫法
1茎匠、有返回值并帶參數(shù)
int main(int argc,char** argv)
{
??? ...
??? return 1;
}
這種模式下格仲,參數(shù)可以用,也可以不用诵冒。
2凯肋、有返回值且不帶參數(shù)
int main()
{
??? ...
??? return 1;
}
這種模式下,直接不帶參數(shù)汽馋。
3侮东、無返回值且不帶參數(shù)
void main()
{
??? ...
}
三圈盔、顯示當(dāng)前所用的OpenCV的版本
printf("當(dāng)前使用的OpenCV的版本為:"CV_VERSION);
好了,下一個文檔苗桂,將要學(xué)習(xí)HightGUI圖形用戶界面的初步內(nèi)容药磺,OpenCV正式開始。