А, вообще-то, на будущее я вам советую писать пример компилируемого кода, чтобы его полностью можно было скопировать и запустить на компиляцию на своем компьютере. Это в первую очередь вам самому поможет найти ошибку.
Полагаю, что дело в руках. Точнее в месте их произростания. Половину дня не найти силы чтоб сделать "step in" вовнутрь atoi, который в VS есть в исходнике на С (?)
Здравствуйте, AndreySpam, Вы писали:
AS>Здравствуйте, AndreySpam, Вы писали:
AS>>Здравствуйте, MasterZiv, Вы писали:
>>>> Си. >>>> >>>> value = "123";
MZ>>>Где объявление value ? Какого оно типа ?
AS>>
AS>>struct User
AS>>{
AS>>char value[10];
AS>>}
AS>>
AS>>Компилируемый код приводить нет смысла, т.к. я его собираю не на x86. На терминале сбора данных. Исходниками либ, дебагерами я тоже не располагаю.
AS>А может быть проблема в неверном использовании extern?
А откуда здесь вообще etern?! Я именно поэтому вам неоднократно и советовал: составьте простой компилируемый пример, и вы сами же быстро обнаружите, что проблемак в вашем коде а не в функции atoi.
Меня поражает, как многие начинают тратить кучу времени на различные абстрактные обсуждения вместо того, чтобы самостоятельно составить демонстрационный готовый для компиляции простой пример, демонстрирующий проблему.
Если такого примера нет, то все подобные гадания — это обычно пустая трата времени!
Я бы вообще на месте моедраторов удалял бы такие темы, где говорится о каком-нибудь баге либо функции, либо компилятора, и при этом не предоставляется демонстрационный пример, который все могли бы по крайней мере скопировать для проверки в своем компиляторе.
Здравствуйте, Сыроежка, Вы писали:
С>Здравствуйте, AndreySpam, Вы писали:
AS>>Здравствуйте, AndreySpam, Вы писали:
AS>>>Здравствуйте, MasterZiv, Вы писали:
>>>>> Си. >>>>> >>>>> value = "123";
MZ>>>>Где объявление value ? Какого оно типа ?
AS>>>
AS>>>struct User
AS>>>{
AS>>>char value[10];
AS>>>}
AS>>>
AS>>>Компилируемый код приводить нет смысла, т.к. я его собираю не на x86. На терминале сбора данных. Исходниками либ, дебагерами я тоже не располагаю.
AS>>А может быть проблема в неверном использовании extern?
С>А откуда здесь вообще etern?! Я именно поэтому вам неоднократно и советовал: составьте простой компилируемый пример, и вы сами же быстро обнаружите, что проблемак в вашем коде а не в функции atoi. С>Меня поражает, как многие начинают тратить кучу времени на различные абстрактные обсуждения вместо того, чтобы самостоятельно составить демонстрационный готовый для компиляции простой пример, демонстрирующий проблему.
С>Если такого примера нет, то все подобные гадания — это обычно пустая трата времени!
С>Я бы вообще на месте моедраторов удалял бы такие темы, где говорится о каком-нибудь баге либо функции, либо компилятора, и при этом не предоставляется демонстрационный пример, который все могли бы по крайней мере скопировать для проверки в своем компиляторе.
Здравствуйте, Сыроежка, Вы писали:
С>Здравствуйте, AndreySpam, Вы писали:
AS>>Здравствуйте, AndreySpam, Вы писали:
AS>>>Здравствуйте, MasterZiv, Вы писали:
>>>>> Си. >>>>> >>>>> value = "123";
MZ>>>>Где объявление value ? Какого оно типа ?
AS>>>
AS>>>struct User
AS>>>{
AS>>>char value[10];
AS>>>}
AS>>>
AS>>>Компилируемый код приводить нет смысла, т.к. я его собираю не на x86. На терминале сбора данных. Исходниками либ, дебагерами я тоже не располагаю.
AS>>А может быть проблема в неверном использовании extern?
С>А откуда здесь вообще etern?! Я именно поэтому вам неоднократно и советовал: составьте простой компилируемый пример, и вы сами же быстро обнаружите, что проблемак в вашем коде а не в функции atoi. С>Меня поражает, как многие начинают тратить кучу времени на различные абстрактные обсуждения вместо того, чтобы самостоятельно составить демонстрационный готовый для компиляции простой пример, демонстрирующий проблему.
С>Если такого примера нет, то все подобные гадания — это обычно пустая трата времени!
С>Я бы вообще на месте моедраторов удалял бы такие темы, где говорится о каком-нибудь баге либо функции, либо компилятора, и при этом не предоставляется демонстрационный пример, который все могли бы по крайней мере скопировать для проверки в своем компиляторе.
Вы заманали, товарищ. Мне не лично пример не нужен, т.к. у меня реальный код открыт, который я компилю по 5 раз на дню. Если пример нужен Вам, то в первом сообщении исходные данные в адаптированном виде были приведены.
Здравствуйте, AndreySpam, Вы писали:
AS>Здравствуйте, Сыроежка, Вы писали:
С>>Здравствуйте, AndreySpam, Вы писали:
AS>>>Здравствуйте, AndreySpam, Вы писали:
AS>>>>Здравствуйте, MasterZiv, Вы писали:
>>>>>> Си. >>>>>> >>>>>> value = "123";
MZ>>>>>Где объявление value ? Какого оно типа ?
AS>>>>
AS>>>>struct User
AS>>>>{
AS>>>>char value[10];
AS>>>>}
AS>>>>
AS>>>>Компилируемый код приводить нет смысла, т.к. я его собираю не на x86. На терминале сбора данных. Исходниками либ, дебагерами я тоже не располагаю.
AS>>>А может быть проблема в неверном использовании extern?
С>>А откуда здесь вообще etern?! Я именно поэтому вам неоднократно и советовал: составьте простой компилируемый пример, и вы сами же быстро обнаружите, что проблемак в вашем коде а не в функции atoi. С>>Меня поражает, как многие начинают тратить кучу времени на различные абстрактные обсуждения вместо того, чтобы самостоятельно составить демонстрационный готовый для компиляции простой пример, демонстрирующий проблему.
С>>Если такого примера нет, то все подобные гадания — это обычно пустая трата времени!
С>>Я бы вообще на месте моедраторов удалял бы такие темы, где говорится о каком-нибудь баге либо функции, либо компилятора, и при этом не предоставляется демонстрационный пример, который все могли бы по крайней мере скопировать для проверки в своем компиляторе.
AS>Вы заманали, товарищ. Мне не лично пример не нужен, т.к. у меня реальный код открыт, который я компилю по 5 раз на дню. Если пример нужен Вам, то в первом сообщении исходные данные в адаптированном виде были приведены.
Вы не понимаете, что пример нужен в первую очередь именно вам для того, чтобы локализовать проблему. Это ничто иное, как обычный прием по поиску ошиьок.
А то, что вы в самом начале привели очевидно к вашей проблеме никакого отношения не имеет. Во-первых, все гадают, как у вас объявлена переменная value (кажется так она у вас там называлась?). Во-вторых, вдруг, обнаруживается, что у вас в коде есть extern.
Я вам с самого начала говорил, что проблема именно в вашем коде, а не в atoi. И я и сейчас в этом нисколько не сомневаюсь. Если бы вы самостоятельно тпроделали типичные шаги по локализации ошибке, которые должен делать каждый программист, то вопрос давно бы был снят с повестки. Да вам бы даже и на форум не пришлось обращаться, так как вы бы сами быстро разобрались. И не нужны никакие исходники atoi и тем более делать пошаговую трассировку всего кода. Достаточно было создать минимальный компилируемый пример, а затем к нему добавлять постепенно другие элементы из вашего проекта как, например, объявление какой-то там переменной как extern о которой здесь никто не ведает.
Здравствуйте, Сыроежка, Вы писали:
С>Здравствуйте, AndreySpam, Вы писали:
AS>>Здравствуйте, Сыроежка, Вы писали:
С>>>Здравствуйте, AndreySpam, Вы писали:
AS>>>>Здравствуйте, AndreySpam, Вы писали:
AS>>>>>Здравствуйте, MasterZiv, Вы писали:
>>>>>>> Си. >>>>>>> >>>>>>> value = "123";
MZ>>>>>>Где объявление value ? Какого оно типа ?
AS>>>>>
AS>>>>>struct User
AS>>>>>{
AS>>>>>char value[10];
AS>>>>>}
AS>>>>>
AS>>>>>Компилируемый код приводить нет смысла, т.к. я его собираю не на x86. На терминале сбора данных. Исходниками либ, дебагерами я тоже не располагаю.
AS>>>>А может быть проблема в неверном использовании extern?
С>>>А откуда здесь вообще etern?! Я именно поэтому вам неоднократно и советовал: составьте простой компилируемый пример, и вы сами же быстро обнаружите, что проблемак в вашем коде а не в функции atoi. С>>>Меня поражает, как многие начинают тратить кучу времени на различные абстрактные обсуждения вместо того, чтобы самостоятельно составить демонстрационный готовый для компиляции простой пример, демонстрирующий проблему.
С>>>Если такого примера нет, то все подобные гадания — это обычно пустая трата времени!
С>>>Я бы вообще на месте моедраторов удалял бы такие темы, где говорится о каком-нибудь баге либо функции, либо компилятора, и при этом не предоставляется демонстрационный пример, который все могли бы по крайней мере скопировать для проверки в своем компиляторе.
AS>>Вы заманали, товарищ. Мне не лично пример не нужен, т.к. у меня реальный код открыт, который я компилю по 5 раз на дню. Если пример нужен Вам, то в первом сообщении исходные данные в адаптированном виде были приведены.
С>Вы не понимаете, что пример нужен в первую очередь именно вам для того, чтобы локализовать проблему. Это ничто иное, как обычный прием по поиску ошиьок. С>А то, что вы в самом начале привели очевидно к вашей проблеме никакого отношения не имеет. Во-первых, все гадают, как у вас объявлена переменная value (кажется так она у вас там называлась?). Во-вторых, вдруг, обнаруживается, что у вас в коде есть extern. С>Я вам с самого начала говорил, что проблема именно в вашем коде, а не в atoi. И я и сейчас в этом нисколько не сомневаюсь. Если бы вы самостоятельно тпроделали типичные шаги по локализации ошибке, которые должен делать каждый программист, то вопрос давно бы был снят с повестки. Да вам бы даже и на форум не пришлось обращаться, так как вы бы сами быстро разобрались. И не нужны никакие исходники atoi и тем более делать пошаговую трассировку всего кода. Достаточно было создать минимальный компилируемый пример, а затем к нему добавлять постепенно другие элементы из вашего проекта как, например, объявление какой-то там переменной как extern о которой здесь никто не ведает.
Тут прикол в следующем, я сделал модуль в отдельном проекте, тестил его, все Ок. Потом интегрировал этот модуль в написанный до меня проект и начались косяки вокруг atoi, atof. Я просто не представляю как к моему модулю "добавлять постепенно другие элементы" из в несколько раз большего готового проекта.
Здравствуйте, AndreySpam, Вы писали:
AS>Тут прикол в следующем, я сделал модуль в отдельном проекте, тестил его, все Ок. Потом интегрировал этот модуль в написанный до меня проект и начались косяки вокруг atoi, atof. Я просто не представляю как к моему модулю "добавлять постепенно другие элементы" из в несколько раз большего готового проекта.
Как я понимаю, все эти функции расположены именно в вашем модуле?
Напрашивается вывод, что все дело в тех объектах, которые вы передаете в свои функции. Вполне возможно, что вы неправильно объявили некоторые переменные. Бывает так, что объявляются в каждом модуле переменная с внешним связыванием, но ни в одном модуле она не определяется. В этом случае некоторые редакторы связей "проглатывают" эту ситуацию и в каждом модуле создают отдельныю переменную, которая, фактически, сттановится переменной с внутренним связыванием. То есть в конечном итоге получается так, что в проекте начинают жить несколько объектов с одним и тем же именем, о которых вы думаете, что это один объект, а на самом деле это различные самостоятельные объекты.
Вот это вам и надо проверить. Для этого на мой взгляд вполне достаточно просто вывести на консоль или еще куда-нибудь все адреса подозрительных переменных при их опрределении и при передаче в вашу функцию. Возможно, что появится расхождение.
>> MZ>Где объявление value ? Какого оно типа ?
>> struct User >> { >> char value[10]; >> }
>> Компилируемый код приводить нет смысла,
MZ>Наоборот, очень бы надо. MZ>Потому что это с таким:
MZ>value = "123";
MZ>не будет компилироваться.
Лано. Я просто напросто думаю, что люди не могущие предположить, что в качестве аргумента для void fn(const char*) бай дефолт нужно подсовывать, как минимум, char*, не смогут помочь в моём вопросе "стопудова" :D
Проблема была, как нам показалось в переменных среды: "чото где-то кешировалось или типа того". Когда стали компилировать из командной строки, вроде бы, процесс пошел. Тьфу-тьфу-тьфу.