/* File: adt2.c Implementation of functions for adt2 */ #include #include "adt2.h" /* Publicly acessible global variable */ int public2 ; /* Space is allocated! */ /* Private global variables "static" means "private". It is a stupid C thing, that the keyword "static" was used. */ static int private2 = 0, non_unique_int_name = 0 ; /* Private function prototypes */ static int private_func2(int ) ; static int non_unique_func_name(int) ; /* Implementations */ void func2(int n) { int temp ; printf("Entering func2 in adt2\n") ; printf("public2 = %d\n", public2) ; printf("private2 = %d\n", private2) ; printf("non_unique_int_name = %d\n", non_unique_int_name) ; non_unique_int_name = n ; private2 = private_func2(n) ; printf("private_func2(%d) = %d\n", n, private2) ; temp = non_unique_func_name(n) ; printf("non_unique_func_name(%d) = %d\n", n, temp) ; printf("private2 = %d\n", private2) ; printf("non_unique_int_name = %d\n", non_unique_int_name) ; return ; } /* Must repeat storage class static here */ static int private_func2(int n) { printf("Entering private_func2 in adt2 (adds 5)\n") ; return n + 5 ; } static int non_unique_func_name(int n) { printf("Entering non_unique_func_name in adt2 (times 7)\n") ; return n * 7 ; }