關於C++&Java中命令列編譯的問題 (轉)
本文講述有關C++/C和中命令列編譯的有關知識.:namespace prefix = o ns = "urn:schemas--com::office" />
在實際中,有時會碰到main()帶引數的情景。記得我第一次在Borlan C++ Builder裡面生成一個控制檯的時候, 程式自動生成了一個帶引數的main():
void main(int argc, char * argv[])
當時覺得很奇怪, 現在明白了, 透過main()的引數給程式增加一些處理資訊,可以使程式和實現更多互動式的通訊. 如果你的程式需要命令列引數編譯的話,那麼源程式的主函式main()就需要帶引數—也就是所謂的命令列引數。帶有引數的main()函式頭格式為:
void main(int argc, char * argv[]) 或void main(int argc, char ** argv)
其實,argc和argv也可以寫成其他的合法識別符號(ntifier)來表示,我在這裡遵從一般情況.
下面來看看這兩個引數的具體含義:
第一個引數argc是int型的,它用來存放命令列引數的個數,實際上argc所存放的數值比命令列引數的個數多1,即將命令字(可名)也計算在內。
第二個引數argv是一個一維的一級指標陣列,它是用來存放命令列中各個引數和命令字的字串的,並且規定:
argv[0]存放命令字
argv[1]存放命令列中第一個引數
argv[2]存放命令列中第二個引數
…
這裡,argc的值和argv[]各元素的值都是自動組賦值的。
在這裡講述帶引數的main()函式實際上是對指標陣列應用的一個具體例項。
下面是一個可以進行命令列引數編譯的具體例子(VC++6.0下透過):
//test.cpp
#include
void main(int argc, char *argv[])
{
cout<
cout<
if (argc>1)
{ cout<
for (int i=1; i cout< }} 上述原始檔經過編譯連線後生成可執行檔案test.exe. 然後在VC中, 我們進行如下設定: 在 Project-->Setting -->De-->Program Arguments裡面任意設定命令列引數(隨便輸入啦): This is the first time I post documents here.^_^ 然後執行,看看你會得到什麼結果……自己分析一下吧… C++中的命令列和Java中的命令列編譯有些小小的差別, 對於用public static void main(String args[])作為函式入口的Java程式, args[0] 放命令列中第一個引數,arg[1] 存放命令列中第二個引數…這和C/C++語言是不相同的.還有,在Java裡面沒有相應的規定一個引數來存放命令列的個數(反正我沒找到),而在C++/C裡面有argc.這裡提供一個Java程式設計師裡面的一道關於命令列編譯的題目: //Test_87.java public class Test_87{ public static void main (String []args) { String foo = args[1]; String bar = args[2]; String baz = args[3]; System.out.println("baz=" + baz); } } 編譯後執行命令: java Test_87 1 2 3 4 螢幕輸出的結果是: baz=4 (1.4下除錯透過.) 請各位多多指教.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993479/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於TIJ的編譯問題編譯
- 關於JSP預編譯的中文問題JS編譯
- 關於JS的編碼轉換問題JS
- 【Java】【轉】在命令列中編譯和執行javaJava命令列編譯
- 關於java編寫斷點續傳中ftp的list命令問題Java斷點FTP
- 關於VC的編譯模式 (轉)編譯模式
- 關於javascript中陣列元素刪除問題的討論 (轉)JavaScript陣列
- 關於預編譯頭 (轉)編譯
- Linux 中編譯 PHP 會遇到的問題(轉)Linux編譯PHP
- 關於Delphi中預編譯指令的使用方法 (轉)編譯
- 關於jsp中轉發的問題JS
- 關於PHP佇列的問題PHP佇列
- 關於磁碟陣列,分割槽載入的問題(轉)陣列
- 關於Partition列被更新的問題
- VC6.0編譯問題 (轉)編譯
- 關於庫的編譯編譯
- 關於 VC 編譯的猜想與試驗 (轉)編譯
- 關於Xcode 10.0編譯不通過的問題 stdc++.6.0.9XCode編譯C++
- [java]javap命令列反編譯Java命令列編譯
- 有關eclipse編譯更新的問題?急急!!Eclipse編譯
- 關於Java編碼規範的問題Java
- 關於Filter中ServletRequest強轉HttpServletRequest問題FilterServletHTTP
- 關於單機遊戲製作中的物件重用問題(轉)遊戲物件
- 配置C#命令列編譯器C#命令列編譯
- 在命令列下使用vs的編譯器命令列編譯
- 關於日期計算的問題 (轉)
- iptables刪除命令中的相關問題
- 請問老師一個關於命令模式的問題模式
- 關於JDON UTF版本中文編碼的問題
- 關於控制檯編碼的設定問題
- SPI編譯問題編譯
- perl 編譯問題!編譯
- jive編譯問題編譯
- 關於轉義符 在php正則中的匹配問題PHP
- 關於工作中遇到的問題
- 關於cuda中的函式問題函式
- 關於 iOS 10 中 ATS 的問題iOS
- 關於struts中html:errors/的問題HTMLError