Ваше описание является явно неинформативным (и, кажется, вы скорее ответите абразивными комментариями, чем предоставите больше информации), поэтому я могу дать вам общий ответ.Куча вещей может отличаться между этими двумя случаями.Во-первых, предположительно, эти две функции определены в разных файлах, поэтому в зависимости от того, что включено, разные типы могут иметь совершенно разные определения.Из того, что я вижу, у тебя нет проблем с областью видимости, но, возможно, я ошибаюсь.А также, поскольку вы не предоставляете нам код для этих других функций, которые знают, какие у них побочные эффекты.
Однако, если честно, я думаю, что ваша проблема, скорее всего, связана с оптимизацией, которую выполняет компилятор, когда функцияуказывается(Попробуйте компилировать без оптимизации).
Наконец, самая поразительно плохая вещь в том, что у вас есть цикл, который использует double в качестве итератора ... вы издеваетесь?Кто знает, сколько раз выполнялся этот цикл.Он полностью зависит от округления с плавающей точкой компилятора, что означает, что он не только непредсказуем, но даже если вам повезет, и он работает на вашей машине, кто знает, сработает ли он на других.