extern data and static diffenece since static is used for keeping the value after existing function, extern use the value in other module. are they the same?