everest% ls
adt1.c    adt1.h    adt2.c    adt2.h    main1.c
everest% 

everest% cc -c adt1.c
everest% cc -c adt2.c
everest% ls
adt1.c    adt1.h    adt1.o    adt2.c    adt2.h    adt2.o    main1.c
everest% 

everest% cc main1.c adt1.o adt2.o
everest% ls
a.out*    adt1.c    adt1.h    adt1.o    adt2.c    adt2.h    adt2.o    main1.c
everest% 

everest% a.out
Calling func1(2)
Entering func1 in adt1
public1 = 17
private1 = 0
non_unique_int_name = 0
Entering private_func1 in adt1 (adds 3)
private_func1(2) = 5
Entering non_unique_func_name in adt1 (times 2)
non_unique_func_name(2) = 4
private1 = 5
non_unique_int_name = 2



Calling func2(7)
Entering func2 in adt2
public2 = 13
private2 = 0
non_unique_int_name = 0
Entering private_func2 in adt2 (adds 5)
private_func2(7) = 12
Entering non_unique_func_name in adt2 (times 7)
non_unique_func_name(7) = 49
private2 = 12
non_unique_int_name = 7



Calling func1(13)
Entering func1 in adt1
public1 = 17
private1 = 5
non_unique_int_name = 2
Entering private_func1 in adt1 (adds 3)
private_func1(13) = 16
Entering non_unique_func_name in adt1 (times 2)
non_unique_func_name(13) = 26
private1 = 16
non_unique_int_name = 13



Calling func2(29)
Entering func2 in adt2
public2 = 13
private2 = 12
non_unique_int_name = 7
Entering private_func2 in adt2 (adds 5)
private_func2(29) = 34
Entering non_unique_func_name in adt2 (times 7)
non_unique_func_name(29) = 203
private2 = 34
non_unique_int_name = 29



everest% 
