static extern函数

来源:互联网 发布:《人生》知乎 编辑:程序博客网 时间:2024/05/20 14:41

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 filestatic 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(); //errorreturn EXIT_SUCCESS;}