Bài giảng Lập trình C - Session 9: Functions

Explain the use of functions

Explain the structure of a function

Explain function declaration and function prototypes

Explain the different types of variables

Explain how to call functions

Call by Value

Call by Reference

Explain the scope rules for a function

Explain functions in multi-file programs

Explain Storage classes

Explain function pointers

 

 

ppt22 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 1590 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Lập trình C - Session 9: Functions, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
* Functions Session 9 Objectives Explain the use of functions Explain the structure of a function Explain function declaration and function prototypes Explain the different types of variables Explain how to call functions Call by Value Call by Reference Explain the scope rules for a function Explain functions in multi-file programs Explain Storage classes Explain function pointers Elementary Programming with C/Session 9/ * of 20 Elementary Programming with C/Session 9/ * of 20 Functions Functions are generally used as abbreviations for a series of instructions that are to be executed more than once Functions are easy to write and understand Debugging the program becomes easier as the structure of the program is more apparent, due to its modular form Programs containing functions are also easier to maintain, because modifications, if required, are confined to certain functions within the program A function is a self-contained program segment that carries out a specific, well-defined task Elementary Programming with C/Session 9/ * of 20 The Function Structure The general syntax of a function in C is : The type_specifier specifies the data type of the value, which the function will return. A valid function name is to be assigned to identify the function Arguments appearing in parentheses are also termed as formal parameters. Elementary Programming with C/Session 9/ * of 20 Arguments of a function Elementary Programming with C/Session 9/ * of 20 Returning from the function It transfers the control from the function back to the calling program immediately. Whatever is inside the parentheses following the return  statement is returned as a value to the calling program. Elementary Programming with C/Session 9/ * of 20 Data Type of a Function The type_specifier is not written prior to the function  squarer(), because squarer() returns an integer type value The type_specifier is not compulsory if an integer type of  value is returned or if no value is returned However, to avoid inconsistencies, a data type should be  specified Elementary Programming with C/Session 9/ * of 20 Invoking a Function A semicolon is used at the end of the statement when a  function is called, but not after the function definition Parentheses are compulsory after the function name,  irrespective of whether the function has arguments or not Only one value can be returned by a function The program can have more than one function The function that calls another function is known as the calling function/routine The function being called is known as the called function/routine Elementary Programming with C/Session 9/ * of 20 Function Declaration Declaring a function becomes compulsory when the function is being used before its definition The address() function is called before it is defined Some C compilers return an error, if the function is not declared before calling This is sometimes referred to as Implicit declaration Elementary Programming with C/Session 9/ * of 20 Specifies the data types of the arguments Function Prototypes char abc(int x, nt y); Advantage : Any illegal type conversions between the arguments used to call a function and the type definition of its parameters is reported 	char noparam (void); Elementary Programming with C/Session 9/ * of 20 Local Variables Declared inside a function Created upon entry into a block and destroyed upon exit from the block Formal Parameters Declared in the definition of function as parameters Act like any local variable inside a function Global Variables Declared outside all functions Holds value throughout the execution of the program Variables Elementary Programming with C/Session 9/ * of 20 Storage Classes-1 Every C variable has a characteristic called as a storage class The storage class defines two characteristics of the variable: Lifetime – The lifetime of a variable is the length of time it retains a particular value Visibility – The visibility of a variable defines the parts of a program that will be able to recognize the variable Elementary Programming with C/Session 9/ * of 20 automatic external static register Storage Classes-2 Elementary Programming with C/Session 9/ * of 20 Scope Rules - Rules that govern whether one piece of code knows about or has access to another piece of code or data The code within a function is private or local to that function Two functions have different scopes Two Functions are at the same scope level One function cannot be defined within another function Function Scope rules Elementary Programming with C/Session 9/ * of 20 Calling The Functions Call by value Call by reference Calling By Value Elementary Programming with C/Session 9/ * of 20 In C, by default, all function arguments are passed by value When arguments are passed to the called function, the values are passed through temporary variables All manipulations are done on these temporary variables only The arguments are said to be passed by value when the value of the variable are passed to the called function and any alteration on this value has no effect on the original value of the passed variable Calling By Value - Example Elementary Programming with C/Session 9/ Slide * of 20 /* Pass-by-Value example */ #include int swap (int a, int b); int main () { int x = 19, y = 5; printf("Before swapping: x=%d, y = %d\n",x,y); swap(x, y); printf("After swapping: x=%d, y = %d",x,y); return 0; } int swap (int a, int b) { int temp; temp = a; a = b; b = temp; } Calling By Reference Elementary Programming with C/Session 9/ * of 20 In call by reference, the function is allowed access to the actual memory location of the argument and therefore can change the value of the arguments of the calling routine Definition 	getstr(char *ptr_str, int *ptr_int); Call 	getstr(pstr, &var); Calling By Reference - Example Elementary Programming with C/Session 9/ Slide * of 20 /* Pass-by-Reference example */ #include int swap (int *a, int *b); int main () { int x = 19, y = 5; printf("Before swapping: x=%d, y = %d\n",x,y); swap(&x, &y); printf("After swapping: x=%d, y = %d",x,y); return 0; } int swap (int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } Elementary Programming with C/Session 9/ * of 20 Nesting Function Calls main() 	{ 	. 	. 	palindrome(); 	. 	. 	} 	 palindrome() 	{ 	. 	. 	getstr(); 	reverse(); 	cmp(); 	. 	. 	} Elementary Programming with C/Session 9/ * of 20 Functions in Multifile Programs Functions can also be defined as static or external Static functions are recognized only within the program file and their scope does not extend outside the program file 	 	static fn _type fn_name (argument list); External function are recognized through all the files of the program extern fn_type fn_name (argument list); Function Pointers Address is the entry point of the function Function has a physical location in memory that can be assigned to a pointer By using function pointers, a function can be sent as a parameter to another function. This feature enables the C program to load function dynamically at runtime. Elementary Programming with C/Session 9/ * of 20 Function Pointers - Example Elementary Programming with C/Session 9/ Slide * of 20 /* Quick sort example */ #include #include int compare (const void * a, const void * b); int main () { int values[] = { 2, 5, -10, 1000, 19, 32, 325, 2000, 0, 1 }; int n; qsort (values, 10, sizeof(int), compare); for (n=0; n<10; n++) printf ("%d ",values[n]); return 0; } int compare (const void * a, const void * b) { return ( *(int*)a - *(int*)b ); } 

File đính kèm:

  • pptBài giảng Lập trình C - Session 9 Functions.ppt
Tài liệu liên quan