Здравствуйте, 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);
_>}
_>
_>Выводит не 1912, в чем трабла?
в том что не надо объявлять переменные в .h файлах.
1.h замени на extern int x;
а в 1.c поставь static int x;
некоторые компиляторы нормально это пережовывают.
Проблема дыла в том, что у тебя 2 статические (т.е. видные только в текущей еденице компиляции) переменные с именем x.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>