LoadRunner指令碼編寫(二)

來源:互聯網
上載者:User

今天有朋友問我,關於loadrunner指令碼編第二篇什麼時候寫,我告訴他都沒什麼東西了。要學習一門語言,基本的文法和思想很重要。現在每個人都識字,那是不是每個識字的人都可以當作家。不可能,因為大多數人沒有作家的思想。編程是一門藝術,我們可以把代碼寫得很優美,而中國的程式員為什麼叫代碼工人呢?國為國外的程式員在寫一篇優美的“散文”,中國的程式員在寫“說明文”。中國的程式員只是根據需求把一個產品通過語言描述清楚。

扯遠了,最近變囉嗦了,呵呵!我想表達的意思就是行編程基本文法必須要記牢。程式的思想也很重要。因為我在編程上面也是個半調子。所以看我的文章也只能算回味一下文法了。

下面來回顧一下嵌套迴圈例子。

Action(){    int  i,j;   //生命兩個變數    for (i=1;i<=5;i++)   //第一重迴圈,迴圈5次    {        if (i==3)                break;   //當i等於3時,跳出本重迴圈        else             lr_output_message("i=%d",i);  //否則,輸入i的值            for (j=1;j<=5;j++)  //第二重迴圈,迴圈5次        {            if (j==2)                   break;   //當j等於2時,跳出本重迴圈            else             lr_output_message("j=%d",j);  //否則,輸入j的值        }    }}

上面的代碼中我加了注釋,這裡就不用再解釋。

運行結果:

Starting iteration 1.Starting action Action.Action.c(9): i=1Action.c(16): j=1Action.c(9): i=2Action.c(16): j=1Ending action Action.Ending iteration 1.

函數

函數,通常 一小段C語言程式僅有一個main()函數組成。然而,在實際編寫應用程式中,需要開發人員編寫大量的使用者自定交函數,不僅要在程式中定義函數本身,而且在主調函數模組中還必須對該被調函數進行類型說明,然後才能使用,與使用者自訂函數相對應的是函數庫,C語言整合式開發環境(IDE)提供,我們只要調用就是行了。就就所謂前人種樹,後人乘涼,不然看似一個簡單的東西,尋其源頭來做,都是一個相當複雜的過程。

void SsyHello()  //打招呼函數{    lr_output_message("hello %s",lr_get_host_name());}    int GetBigger(int x,int y)  //得到最大值函數{    if (x>y) {        return x;    }    else{        return y;    }    }    Action(){    int x=10,y=20, result;   //聲明變數        SsyHello();  //無形參,無傳回值函數    result = GetBigger(x,y);    lr_output_message("GetBigger(%d,%d)=%d",x,y,result);  //帶形參,帶傳回值函數        return 0;}

上面的程式加註解了,簡單來說就是前面定義了兩個函數SsyHello() 和 GetBigger(),主函數Action()對前面兩個函數進行調用。

運行結果:

Starting iteration 1.Starting action Action.Action.c(4): hello 2011-20120624YOAction.c(23): GetBigger(10,20)=20Ending action Action.Ending iteration 1.

動態儲存裝置方式與靜態儲存方式

我們在定義變數是,根據定義的位置不同,分為全域變數與局部變數。我出生在一個叫“舞陽”的小縣城,在這個縣城中也有人名“舞陽”,前一個作用於整個縣城,後一個只作用於他個人。那麼從變數值的存在生存期角度,又可分為靜態儲存方式和動態儲存裝置方式兩類。

靜態儲存方式:是指在程式運行期間分配固定的儲存空間方式。

動態儲存裝置方式:是在程式運行期間根據需要進行動態分配儲存空間的方式。

使用者儲存空間可分三部分:

1、程式區

2、靜態儲存區

3、動態儲存裝置區

全域變數全部存放在靜態儲存區,在程式開始執行時給全域變數分配儲存區,程式運行完畢就釋放,在程式執行過程中它們佔據固定的儲存單元,而不動態地進行分配和釋放。

動態儲存裝置區存放以下資料:

(1)函數形式參數

(2)自動變數(未加static聲明的局部變數)

(3)函數調用時的現場保護和返回地址

上面這些資料,在函數開始調用時分配動態空間,函數結果時釋放這些空間。

在C語言中,每個變數和函數有兩個屬性:資料類型和資料的儲存類別

* 自動(auto)變數

函數中的局部變數,如不專門的聲明為static儲存類別,都是動態地分配儲存空間的。

* 靜態(static)聲明局部變數

有時希望函數中的局部變數的值在函數調用結束後不消失而保留,這時就應該指定局部變數為“靜態局部變數”,用static關鍵字。

*  寄存器(register)變數

為了提高效率,C語言允許把局部變數的值放在CPU中的寄存器中,這種變數叫“寄存器變數”,用關鍵字register變數。

static int c;    int prime(register int number)   //判斷是否為素數{    register int flag=1;    auto int n;    for (n=2;n<number/2 && flag==1;n++) {        if (number % n==0) flag=0;    return(flag);                    }}    demo(int a)    //static、auto變數的示範函數{    auto int b=0;    int d;    static c=3;    b=b+1;    c=c+1;    lr_output_message("demo()函數中的d=%d",d);    lr_output_message("demo()函數中的static c=%d",c);    return a+b+c;    }Action(){    int a=2,i;   //變數聲明        for (i=0;i<3;i++) {        lr_output_message("demo()函數部分第%d運行情況如下:",i+1);        lr_output_message("函數demo運行結果為:%d",demo(a));        lr_output_message("-------------------\n\r");    }        //判斷13是否為素數,並輸出提示資訊    if (prime(13)==0)        lr_output_message("13不是素數!");    else        lr_output_message("13是素數!");        lr_output_message("c=%d",c);  //輸入變理的值                 return 0;}

素數:指大於1的自然數,除了1和它本身不能被其它數整除的數。prime()函數部分主要用來判斷傳入的數是否是素數。

demo()函數用來做static和auto類型的變數示範。Action()函數用於調用與輸入結果。

運行結果:

Starting iteration 1.Starting action Action.Action.c(31): demo()函數部分第1運行情況如下:Action.c(22): demo()函數中的d=51446257Action.c(23): demo()函數中的static c=4Action.c(32): 函數demo運行結果為:7Action.c(33): -------------------    Action.c(31): demo()函數部分第2運行情況如下:Action.c(22): demo()函數中的d=51446257Action.c(23): demo()函數中的static c=5Action.c(32): 函數demo運行結果為:8Action.c(33): -------------------    Action.c(31): demo()函數部分第3運行情況如下:Action.c(22): demo()函數中的d=51446257Action.c(23): demo()函數中的static c=6Action.c(32): 函數demo運行結果為:9Action.c(33): -------------------    Action.c(40): 13是素數!Action.c(42): c=0Ending action Action.Ending iteration 1.

指標

指標是C語言中廣泛使用的一種資料類型,指標可以使我們的程式變得非常靈活,但也讓不少程式員頭痛,一不小心就會使程式出錯。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.