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