有没有办法让静态变量在C / C ++中有多个副本?
以下代码有一个静态变量 - 里程。如何实现runner1()和runner2()有自己的英里副本,但保持里程为静态?
test.h
static int miles;
extern int get_miles();
test.c的
#include "test.h"
int get_miles() {
miles = miles + 1;
return miles;
}
user.c的
#include <stdio.h>
#include "test.h"
extern void runner1();
extern void runner2();
void runner1() {
int i;
for(i=0;i<5;i++) {
printf("runner1 runs %0d miles\n", get_miles());
}
}
void runner2() {
int j;
for(j=0;j<5;j++) {
printf("runner2 runs %0d miles\n", get_miles());
}
}
int main() {
runner1();
runner2();
}
答案 0 :(得分:0)
这是矛盾的:你想要两件不同且同时相同的东西。