Профиль пользователя заблокирован сроком «навсегда» без указания причины
Ответы пользователя по тегу Программирование
  • Едино разовое объявление структуры в проекте

    @MikhailEdoshin
    Вы переменную создаете, а не только структуру объявляете. test_blah — это переменная, тип данных struct blah. Задумывалось, наверное, так:

    /* blah.h */
    struct blah; /* урезанное описание */
    
    /* blah.c */
    #include "blah.h"
    struct blah { int a, b } /* описание */
    test_blah; /* и тут же объявление переменной этого типа */
    
    /* main.c */
    #include "blah.h"
    /* можно работать с указателями на struct blah */
    Ответ написан
    1 комментарий
  • Простейшее Mac+Win кроссплатформенное приложение

    @MikhailEdoshin
    FileMaker (самое простое), Real Basic.
    Ответ написан
    Комментировать
  • Какие инструменты вы используете при отладке сохранения/загрузки файлов собственного формата?

    @MikhailEdoshin
    Может быть, просто тесты писать — написать развесистый пример со всеми возможными вариантами и тестовый код, чтобы посмотреть, как читается? Из инструментов на Питоне, например, есть такой construct, декларативный парсер для бинарных форматов, мне кажется, с ним тестировать должно быть удобно (хотя и с обычным struct можно легко написать специализированные тесты).

    В целом же я присоединяюсь к предыдущему оратору — почему не использовать стандартный сериализатор?
    Ответ написан
  • Tight binding, русский эквивалент?

    @MikhailEdoshin
    Нет, это как раз и описывает приоритет операторов. И использование or вместо || помогает не потому, что у or приоритет ниже, чем у || (хотя это так), а потому он ниже, чем у запятой (,), в то время как у || — выше, чем у запятой.

    Скобки синтаксически к операторам не относятся; парсер, работающий с таблицей приоритетов операторов, по сути, как раз расставляет скобки в выражении. А в данном случае, как я понимаю, это еще и не скобки, а и впрямь вызов функции (Perl не знаю, к сожалению). Но в любом случае, скобки в данном превращают левое выражение в неделимый атом и парсер уже никак не вытащит из него "$file" и не отнесет его к ||. Кстати, наверное, возможен еще один вариант?

    (open FILE, "$file") || die "Can't open: $! \n";
    Ответ написан
    3 комментария
  • inline function в С

    @MikhailEdoshin
    Вы пишете, что функция у вас определена в заголовочном файле — вы имеете в виду, что весь код функции там или только объявление (то есть она объявлена, а не определена)? Мне кажется, только объявлена, иначе у вас, скорее всего, были бы дублирующиеся символы при линковке.

    Вообще же extern inline функция (возможно) будет развернута в inline в той единице компиляции, где она определена, и из получившегося объекта будет торчать одноименный символ. Все остальные единицы компиляции будут использовать ее как обычную extern функцию. На SO есть небольшое обсуждение.

    Если вы хотите развернуть ее во всех единицах компиляции, то можно, по примеру С++, описать функцию полностью в заголовочном файле как static inline плюс добавить не-static обертку для экспорта. (Или перед компиляцией слить все файлы в один — наверное, так будет даже проще.)
    Ответ написан
    Комментировать
  • Как подменить или пропатчить библиотеку qt

    @MikhailEdoshin
    Новая функция SQLite? В смысле, новая функция, которой можно пользоваться в SQL-выражениях? Если так, то там ведь стандартный интерфейс добавления таких функций во время выполнения — зачем изменять саму SQLite?
    Ответ написан
    Комментировать
  • Ваше мнение - Кто имеет право праздновать день программиста?

    @MikhailEdoshin
    Why so serious? :) Помнится, в конторе работал, так там каждую пятницу день программиста был (а у дизайнеров — соответственно, день дизайнера).
    Ответ написан
    Комментировать
  • Выбор первой IDE для С/С++ в кружке программирования?

    @MikhailEdoshin
    Pelles C? С++ нет. Windows. Скриншоты.
    Ответ написан
    Комментировать
  • Какое сочетание язык-СУБД выбрать для разработки POS-Inventory системы для MacOS и iOS?

    @MikhailEdoshin
    Посмотрите на FileMaker, может быть, подойдет. Это реляционная СУБД, у нее есть клиент/сервер для Мака и Windows, плюс клиенты под iPhone/iPad. Клиенты могут непосредственно работать с сервером или хранить базу локально; предполагается, что синхронизацию вы напишете тогда вручную. Из недостатков — эта СУБД изначально разрабатывалась для конечных пользователей, программисту с ней может быть сложно :) Скажем, SQL там считайте что нет. Ну и не бесплатная.
    Ответ написан
    2 комментария
  • Как получить одинаковый хэш двух схожих строк?

    @MikhailEdoshin
    Нет. Как вы себе представляете работу такой функции? А если дом 122? Или 21? Тоже одинаковый хэш должен быть? А если улица «Масюковская» — тоже? А когда он должен делаться неодинаковый?

    Есть фонетическое индексирование, которое выдает одинаковый хеш для слов, которые произносятся примерно одинаково — вполне возможно, что подобная функция для русского языка выдала бы одинаковый результат для «Васюковская» и «Васюковая», но не для всего адреса. Есть триграмный индекс для поиска похожих строк, но это не хэш.
    Ответ написан
  • Как правильно спроектировать протокол обмена данными между клиентом и веб-сервисом?

    @MikhailEdoshin
    Часто выбор формата делают либо через «расширение файла» (domain.com/method.xml vs method.json), либо через HTTP-заголовок Accept.
    Ответ написан
    Комментировать
  • Рекурсивные(?) регулярные выражения в tcl?

    @MikhailEdoshin
    Я не совсем понял вопрос, может быть, но если вам нужно проверять соответствие скобок регулярным выражением, то это в принципе невозможно. Регулярные выражения могут описывать только регулярные грамматики, это третий тип грамматик, их можно разбирать автоматом без памяти, а соответствие скобок — это грамматики второго типа, более мощные, для них нужен парсер. Вы можете проверять соответствие скобок, если у вас, допустим, не более пяти пар в строке (то есть ограниченное число), но в общем случае нет.

    Хотя современные регулярки довольно мощные с кучей всяких дополнительных возможностей, но не думаю, что туда что-то подобное добавят — там существенно отличающиеся алгоритмы.
    Ответ написан
    Комментировать
  • Литературу по программирвоанию под Mac?

    @MikhailEdoshin
    Advanced Mac OS X Programming, by Mark Dalrymple and Aaron Hillegass. Это главным образом Mac OS X со стороны Unix. Очень рекомендую. И у этого же Aaron Hillegass есть Cocoa Programming for Mac OS X, но ее я смотрел поверхностно, только одну главу, тоже оказавшуюся очень толковой. Еще по XCode мне понравилась книжка Step Into XCode, by Fritz Anderson, но та, что у меня, описывает довольно старую версию, не знаю, есть ли более новая.
    Ответ написан
    1 комментарий
  • Задача об аккуратном форматировании?

    @MikhailEdoshin
    Насчет подструктуры ничего сказать не могу, но это упрощенный алгоритм Кнута-Пласса о выключке абзаца, соответственно направление мысли — посмотреть их работу :) Из вики:
    Formally, the algorithm defines a value called badness associated with each possible line break; the badness is increased if the spaces on the line must stretch or shrink too much to make the line the correct width. Penalties are added if a breakpoint is particularly undesirable: for example, if a word must be hyphenated, if two lines in a row are hyphenated, or if a very loose line is immediately followed by a very tight line. The algorithm will then find the breakpoints that will minimize the sum of squares of the badness (including penalties) of the resulting lines. If the paragraph contains n possible breakpoints, the number of situations that must be evaluated naively is 2n. However, by using the method of dynamic programming, the complexity of the algorithm can be brought down to O(n2) (see Big O notation). Further simplifications (for example, not testing extremely unlikely breakpoints such as a hyphenation in the first word of a paragraph) lead to an efficient algorithm whose running time is almost always of order n. A similar algorithm is used to determine the best way to break paragraphs across two pages, in order to avoid widows or orphans (lines that appear alone on a page while the rest of the paragraph is on the following or preceding page). However, in general, a thesis by Michael Plass shows how the page breaking problem can be NP-complete because of the added complication of placing figures.[18]
    Ответ написан
    Комментировать