理解LoadRunner中的局部變量和全局變量

在C語言中,變量有效性的範圍稱變量的做用域。不只對於形參變量,C語言中全部的量都有本身的做用域,按做用域範圍不一樣,可分爲局部變量和全局變量兩種變量類型。php

  在LoadRunner中應用全局變量和局部變量的示例腳本以下:web

LoadRunner中的局部變量和全局變量

圖4.9 LoadRunner 9.5 Web(HTTP/HTML)協議腳本代碼截圖api

  上面代碼是在LoadRunner 9.5中編寫完成,請參見圖4.9左側,其包含一個文件名稱爲「globals.h」,您能夠在該頭文件中定義全局變量,這裏咱們定義了一個全局整型變量,它的名稱爲「icount」,初始值爲10,請參見globals.h頭文件內容:函數

 

#ifndef _GLOBALS_H
#define _GLOBALS_H
 
//--------------------------------------------------------------------
// Include Files
#include "lrun.h"
#include "web_api.h"
#include "lrw_custom_body.h"
 
//--------------------------------------------------------------------
// Global Variables
 
int icount=10;//全局變量
 
#endif // _GLOBALS_H

 

  Action部分代碼以下:spa

 

int a=8,b=15;     /*a,b爲全局變量*/
 
int max(int a,int b) /*a,b爲局部變量*/
{
       return a>b?a:b ;
}
 
int incb()
{
       ++b;
       lr_output_message("incb()函數中的a=%d,b=%d",a,b);
}
 
Action()
{
       int a=10;//局部變量
       lr_output_message("a=%d,b=%d",a,b);
       incb();
       lr_output_message("a=%d,b=%d",a,b);
       lr_output_message("max(%d,%d)=%d",a,b,max(a,b));
       lr_output_message("globals.h中的全局變量icount=%d", icount);
       return 0;
}

 

  在Action部分,起始聲明瞭兩個整型全局變量,a並賦予初值8,b賦予初值15。接下來,聲明瞭兩個整型數比較函數max(),在max()函數中,有兩個整型參數,a和b。incb()函數,實現了對全局變量加一,然後,輸出全局變量a和b。Action()中,先聲明瞭局部變量a,並賦初值爲10,接下來,輸出局部變量a和全局變量b,又經過調用incb()函數對全局變量b進行加一,同事輸出a和b。這裏先給你們提一個問題,就是此時a的值應該輸出的是全局變量a仍是局部變量a的值?請讀者朋友們認真考慮一下。後續還輸出max(a,b),這裏一樣存在上面的問題,最後輸出「globals.h」文件中的全局變量icount的值。blog

上面的腳本執行結果以下:作用域

 

Running Vuser...
Starting iteration 1.
Starting action Action.
Action.c(17): a=10,b=15
Action.c(11): incb()函數中的a=8,b=16
Action.c(19): a=10,b=16
Action.c(20): max(10,16)=16
Action.c(21): globals.h中的全局變量icount=10
Ending action Action.
Ending iteration 1.
Ending Vuser...

 

  根據執行結果,咱們能夠得出以下結論:get

  1. 全局變量是在函數外部定義的變量,它不屬於哪個函數,它屬於一個源程序文件,其做用域是整個源程序。局部變量是在函數內做定義說明的,其做用域僅限於函數內。it

  2. 當局部變量和全局變量同名時,在局部變量的做用範圍內,全局變量不起做用,如在Action()函數部分,a的值爲10,而非全局變量8,這就回答了咱們前面提的問題。固然,若是在該部分沒有聲明同名局部變量,則輸出的內容爲全局變量的值,如:變量b和「globals.h」中的全局變量icount的值,則輸出值,爲全局變量的值。io

相關文章
相關標籤/搜索