Automatic variableIn computer programming, an automatic variable is a local variable which is allocated and deallocated automatically when program flow enters and leaves the variable's scope. The scope is the lexical context, particularly the function or block in which a variable is defined. Local data is typically (in most languages) invisible outside the function or lexical context where it is defined. Local data is also invisible and inaccessible to a called function,[note 1] but is not deallocated, coming back in scope as the execution thread returns to the caller. Automatic local variables primarily applies to recursive lexically-scoped languages.[note 2] Automatic local variables are normally allocated in the stack frame of the procedure in which they are declared.[note 3] This was originally done to achieve re-entrancy and allowing recursion,[note 4] a consideration that still applies today. The concept of automatic variables in recursive (and nested) functions in a lexically scoped language was introduced to the wider audience with ALGOL in the late 1950s, and further popularized by its many descendants. The term local variable is usually synonymous with automatic variable, since these are the same thing in many programming languages, but local is more general – most local variables are automatic local variables, but static local variables also exist, notably in C. For a static local variable, the allocation is static (the lifetime is the entire program execution), not automatic, but it is only in scope during the execution of the function. In specific programming languagesC, C++(Called automatic variables.) All variables declared within a block of code are automatic by default. An uninitialized automatic variable has an undefined value until it is assigned a valid value of its type. [1] The storage-class specifier In C, using the storage class In C++, the constructor of automatic variables is called when the execution reaches the place of declaration. The destructor is called when it reaches the end of the given program block (program blocks are surrounded by curly brackets). This feature is often used to manage resource allocation and deallocation, like opening and then automatically closing files or freeing up memory, called Resource Acquisition Is Initialization (RAII). Since C++11, C++ allows variables to be declared with the Java(Called local variables.) Similar to C and C++, but there is no Perl(Called lexical, my or private variables.) In Perl, local variables are declared using the Perl also has a See also
Notes
References
|
Portal di Ensiklopedia Dunia