Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Fundamentals of Programming: Variables, Scoping, Storage Classes, Inline Functions, Default Arguments, Slides of C programming

The attributes of a variable, including type, name, value, and size. It also covers scoping and storage classes, such as static and extern. The document introduces inline functions and default arguments, which allow for function calls with omitted parameters. Examples are provided throughout the document to illustrate these concepts.

Typology: Slides

2021/2022

Available from 08/21/2022

SamenKhan
SamenKhan 🇵🇰

219 documents

1 / 20

Toggle sidebar

Related documents


Partial preview of the text

Download Fundamentals of Programming: Variables, Scoping, Storage Classes, Inline Functions, Default Arguments and more Slides C programming in PDF only on Docsity! Fundamentals of Programming (FOP) 2 Attributes of a Variable • Variables have attributes which include; type, name, value, size int x = 4; We know 4 bytes are reserved for int and; – Scope • Where variable can be referenced in program – Storage class • How long variable exists in memory 5 Static Storage Classes • Static storage class – Variables exist for entire program • For functions, name exists for entire program – Not accessible outside one file, scope rules still apply • static keyword – Local variables – Keeps value between function calls – Only known in own function • extern keyword – Default for global variables/functions • Globals: defined outside of a function block – Known in any function that comes after it 6 1 // code 7 2 // A scoping example. 3 #include <iostream> 4 5 6 8 void useLocal( void ); // function prototype 9 void useStaticLocal( void ); // function prototype 10 void useGlobal( void ); // function prototype 11 12 int x = 1; // global variable 13 14 int main() 15 { 16 int x = 5; // local variable to main 17 18 cout << "local x in main's outer scope is " << x << endl; 19 20 { // start new scope 21 22 int x = 7; 23 24 cout << "local x in main's inner scope is " << x << endl; 25 26 } // end new scope Declared outside of function; global variable with file scope. Local variable Create a new block, giving x block scope. When the block ends, this x is destroyed. 7 27 28 cout << "local x in main's outer scope is " << x << endl; 29 30 useLocal(); // useLocal has local x 31 useStaticLocal(); // useStaticLocal has static local x 32 useGlobal(); // useGlobal uses global x 33 useLocal(); // useLocal reinitializes its local x 34 useStaticLocal(); // static local x retains its prior value 35 useGlobal(); // global x also retains its value 36 37 cout << "\nlocal x in main is " << x << endl; 38 39 return 0; // indicates successful termination 40 41 } // end main 42 10 72 // useGlobal modifies global variable x during each call 73 void useGlobal( void ) 74 { 75 cout << endl << "global x is " << x 76 << " on entering useGlobal" << endl; 77 x *= 10; 78 cout << "global x is " << x 79 << " on exiting useGlobal" << endl; 80 81 } // end function useGlobal local x in main's outer scope is 5 local x in main's inner scope is 7 local x in main's outer scope is 5 local x is 25 on entering useLocal local x is 26 on exiting useLocal local static x is 50 on entering useStaticLocal local static x is 51 on exiting useStaticLocal global x is 1 on entering useGlobal global x is 10 on exiting useGlobal This function does not declare any variables. It uses the global x declared in the beginning of the program. 11 local x is 25 on entering useLocal local x is 26 on exiting useLocal local static x is 51 on entering useStaticLocal local static x is 52 on exiting useStaticLocal global x is 10 on entering useGlobal global x is 100 on exiting useGlobal local x in main is 5 12 inline Functions • Inline functions – Keyword inline before function – Asks the compiler to copy code into program instead of making function call • Reduce function-call overhead • Compiler can ignore inline – Good for small, often-used functions • Example inline double cube( const double s ) { return s * s * s; } – const tells compiler that function does not modify s 15 Default Arguments • Function call with omitted parameters – If not enough parameters, rightmost go to their defaults – Default values • Can be global variables, constants, expressions or function calls • Set defaults in function prototype int myFunction( int x = 1, int y = 2, int z = 3 ); – myFunction(3) • x = 3, y and z get defaults (rightmost) – myFunction(3, 5) • x = 3, y = 5 and z gets default 16 1 // code 15 2 // Using default arguments. 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 // function prototype that specifies default arguments 9 int boxVolume( int length = 1, int width = 1, int height = 1 ); 10 11 int main() 12 { 13 // no arguments--use default values for all dimensions 14 cout << "The default box volume is: " << boxVolume(); 15 16 // specify length; default width and height 17 cout << "\n\nThe volume of a box with length 10,\n" 18 << "width 1 and height 1 is: " << boxVolume( 10 ); 19 20 // specify length and width; default height 21 cout << "\n\nThe volume of a box with length 10,\n" 22 << "width 5 and height 1 is: " << boxVolume( 10, 5 ); 23 Set defaults in function prototype. Function calls with some parameters missing – the rightmost parameters get their defaults. 17 24 // specify all arguments 25 cout << "\n\nThe volume of a box with length 10,\n" 26 << "width 5 and height 2 is: " << boxVolume( 10, 5, 2 ) 27 << endl; 28 29 return 0; // indicates successful termination 30 31 } // end main 32 33 // function boxVolume calculates the volume of a box 34 int boxVolume( int length, int width, int height ) 35 { 36 return length * width * height; 37 38 } // end function boxVolume The default box volume is: 1 The volume of a box with length 10, width 1 and height 1 is: 10 The volume of a box with length 10, width 5 and height 1 is: 50 The volume of a box with length 10, width 5 and height 2 is: 100
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved