1. mylib.h
#ifndef MYLIB_H_
#define MYLIB_H_
extern int acc_add(int n); //defined in other files
#endif /* MYLIB_H_ */
2. mylib.c
#include<stdio.h>
#include<stdlib.h>
// can only be accessed in the file
static void show_location(){
puts("shanghai");
}
//by default, extern int acc_add(int n)
int acc_add(int n){
show_location();
static int total = 0;
printf("before exec, total = %d, n = %d\n", total, n);
total += n;
return total;
}
3. main.c
#include <stdio.h>
#include <stdlib.h>
#include "mylib.h"
int main(void) {
printf("acc_add(1) = %d\n", acc_add(1));
printf("acc_add(1) = %d\n", acc_add(1));
//show_location(); //error
return EXIT_SUCCESS;
}