Re: проблема со статической переменной
От: Centaur Россия  
Дата: 09.06.06 21:05
Оценка:
Здравствуйте, vip_delete, Вы писали:

1.h
static int x;
void init();


1.c
#include "1.h"
void init()
{
    x = 1912;
}


main.c
#include "1.h"
#include <stdio.h>
void main()
{
    init();//при  заходе сюда меняется аддрес x! %| и 1912 присваевается хз куда.
    printf("%d",x);
}

Две единиицы трансляции 1.c и main.c объявляют две разные статические переменные int x. После этого init() присваивает 1912 своей переменной, а main распечатывает свою.


//1.h
extern int x;
void init();

//1.c
#include "1.h"
int x;
void init()
{
  x = 1912;
}

// main.c
#include "1.h"
#include <stdio.h>
int main(int, char**)
{
  init();
  printf("%d\n", x);
  return 0;
}

Здесь 1.c и main.c объявляют внешнюю переменную x, и 1.c её определяет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.