when ratio and K are defined externally, gcc complains about a non-constant initializer: const double ratio = 2.0L; const double K = ratio; int main(void) { return 0; } however, when defined as local variables, there's no problem. int main(void) { const double ratio = 2.0L; const double K = ratio; return 0; } why isn't const being honored for the global variable version? pete