例如,如果我要使用多个函数进行复杂的计算,其中每个函数都执行一部分工作,例如可以进行以下操作:
void initialize_equations() {
int t_constant;
time_t times;
double *current_time;
times= time(NULL);
t_constant = 365*24*60*60;
*current_time =times/t_constant;
printf("%Lf", current_time);
}
int year_day(time_t *crntT, int *constant) {
int year, month;
float year_l, month_l;
year_l=(¤t_time)/365; //trying to call crntT from previous function
year=year_l+1970; //time starts at 1970 therefore turned it from float to int then summed time
month=((year_l-year)*12)+1; // Month starts at Jan therefore +1
}
答案 0 :(得分:0)
您无法访问在另一个函数中声明的局部变量,无论它是否为c中的指针。但是,只要您拥有此内存块的地址,您就可以(但可能不会)访问在另一个函数中分配的内存。
例如,如果您为本地变量'current_time'(您没有,但这是另一个问题)分配内存,请使用:
double* current_time = (double*) malloc(sizeof(double));
并保留已分配内存的地址(值为'current_time')。然后,只要你能以某种方式让该函数知道这个地址,你就可以在另一个函数中访问分配的内存。
话虽如此,为什么不简单地将此值保存在更高级别的位置,然后将其传递给需要此值的所有函数?