|
|
|
Программирование ХП на С
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, коллеги! Я разработал некий рекурсивный алгоритм, который пытаюсь реализовать в ХП на С. И сталкиваюсь с непонятными эффектами. Вот, в частности, на вызов itoa сообщение об ошибке, хотя рядом atoi проходит безо всяких ошибок. И при том, что компилляция и линковка прошли успешно, и ошибка происходит уже при вызове ХП. Заменил на sprintf - всё прошло. Добавил новую ветвь - ошибка (обрыв связи) просто на присвоении значения элементу массива. Значение хорошее, elog его выводит нормально. Аналогичные (идентичные) действия в другой ветви (с другим массивом) проходят без проблем. У меня закралось подозрение, что я не понимаю и нарушаю какие-то фундаментальные принципы. Пользуюсь я первой конвенцией. Хочу уточнить буквально следующее: 1) Могу я описывать в том же модуле и вызывать локальные функции без отдельных Datum-наворотов. То есть ведущая заходная функция описана в соответствии с первой конвенцией, и уж она по-простому вызывает описаные в том же модуле (с-файле) обычные с-функции. Для одной ветви это сработало, а вот на другой... 2) Могу я описывать и использовать модульные (не локальные ни в какой функции) переменные и массивы? Поскольку алгоритм рекурсивный, критическим является компактность контекста вызова. А то бы я и заморачиваться не стал бы, всё по первой конвенции бы и описал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2016, 09:51 |
|
||
|
|

start [/forum/topic.php?fid=53&tid=1997242]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
236ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 561ms |

| 0 / 0 |
