Темы Разделы Интересы Top 20
 |
| 1 | Хабы: C, C++ Продолжение вот этой статьи habrahabr.ru/post/131212/, где я собирался показать, как «и ошибки удобно обрабатывать и exceptions при этом не использовать», да всё руки не доходили.
Итак, будем считать, что у нас ситуация, что «настоящие C++ exceptions» использовать нельзя — например, языком разработки является C или компилятор С++ для нашей платформы не поддерживает exceptions (или формально поддерживает, а реально этим пользоваться нельзя). Это, конечно, нетипично для desktop приложений, но вполне обычно для embedded разработки. Читать дальше → habrahabr.ru »2012-04-06 00:18 habrahabr.ru / Новости / C | | 2 | Хабы: Программирование, PHP, C В этой статье я хочу исследовать расход памяти у массивов (и значений в целом) в PHP используя следующий скрипт в качестве примера, который создаёт 100 000 уникальных целочисленных элементов массива и в конце измеряет количество использованной памяти.
Читать дальше → habrahabr.ru »2012-03-31 15:06 habrahabr.ru / Новости / C | | 3 |  Доброго времени суток!
Недавно в сети Tuts+ Premium был анонсирован новый курс под названием "30 Days to Learn C#". Его целью является обучение новоиспечённых программистов языку C#, разработанному компанией Microsoft, а также работе с платформой .NET. Этот курс, разумеется, не сделает из вас настоящего профессионала, а всего-лишь произведёт первое знакомство с языком и платформой в целом. Курс охватывает следующие темы:
Читать дальше → habrahabr.ru »2012-03-12 14:37 habrahabr.ru / Новости / C | | 4 | Вместо введения
Добрый день, Хабралюди.
Хотел бы поделиться со всеми моим скромным опытом выбора языка программирования для своих проектов. Сразу хочу подчеркнуть – я выбирал язык исходя из собственных нужд, и, вполне вероятно, что ваш выбор в аналогичных условиях может быть другим. Все же я искренне надеюсь, что эта статья будет полезной, так как в ней достаточно подробно и аргументировано проводится сравнение D с C++ и C#, а так же упоминаются свыше десяти различных языков, принадлежащих к различным классам и реализующих различные парадигмы. Сам D разрабатывается как высокоуровневый язык для системного и прикладного программирования.
Читать дальше → habrahabr.ru »2012-02-21 14:49 habrahabr.ru / Новости / C | | 5 |  В Яндекс.Деньгах появилась новая платежная форма для тех, кто пока не готов принимать электронные деньги, но хочет привлечь клиентов, которые ими пользуются.Например, чтобы заплатить вашей фирме за домофон, ваш клиент ходит с квитанцией в банк. А значит, он тратит свое время не только на то, чтобы дойти туда, но и на очереди, заполнение платежки и проверку реквизитов.Новая платежная форма сделает этот процесс гораздо проще. Встроить ее можно на любой сайт: от веб-странички детского садика до блога товарищества собственников жилья. А главное, вам не придется регистрироваться на Яндекс.Деньгах, заключать с нами договор или проводить какие-то технические работы. Всё, что нужно сделать — один раз зайти на сайт Яндекс.Денег, открыть специальный конструктор, скопировать в его поля свои реквизиты и нажать кнопку «Создать форму». После этого на странице появится готовый код формы: вставьте его на любую страницу своего сайта. Теперь пользователи Яндекс.Денег смогут оплачивать ваши услуги одним нажатием рыжей кнопки, не переписывая никаких реквизитов.Комиссия за такой платеж составляет 30 рублей, ее оплачивает отправитель. Деньги будут приходить на ваш банковский счет в течение нескольких рабочих дней.Кстати, эта же форма облегчит и привычную работу с квитанциями. Если пользователь пройдет по ссылке «распечатать квитанцию для оплаты в банке», он получит удобную сверстанную квитанцию, которую останется только распечатать и отнести в банк.Команда Яндекс.Денег, давно забыли про очереди habrahabr.ru »2012-02-21 09:52 habrahabr.ru / Новости / C | | 6 |  Об авторе: Паси Маннинен разрабатывает мобильные и веб-приложения, является Чемпионом Nokia Developer и Профессионалом Adobe Community, сертифицированным экспертом и преподавателем Adobe по Flex, Flash и Flash Mobile. Окончил магистратуру Университета Ювяскюля (одного из крупнейших вузов Финляндии) по специальностям «Прикладная математика» и «Компьютерные науки».
Эта статья рассказывает, как работать с данными XML на примере приложения, отображающего прогноз погоды в любых городах мира.
Вступление
В этой статье я покажу как создать приложение для Window Phone 7, которое загружает прогноз погоды из службы World Weather Online. Вы можете почитать интересную статью по работе с Weather Online, но я хочу углубиться именно в принципы хранения избранных городов в телефоне и методику создания панорамного режима просмотра прогноза погоды для различных городов.
Приложение выполнено в виде панорамы для WP7. Сначала приложение загружает сохранённый список городов и API-ключ для доступа к Weather Online из памяти устройства, после чего получает прогноз погоды для всех городов. Каждый прогноз отображается в собственном Panorama View. Пользователь же может указать ApiKey и избранные города на странице настроек.
API-ключ для Weather Online
Вам будет нужен ваш собственный API-ключ для доступа к Weather Online. Из соответствующей статьи можно узнать, как это сделать.
Windows Phone 7.1 SDK
Для разработки приложений под устройства Windows Phone 7 нужно установить соответствующий SDK. Загрузить последнюю версию SDK для Windows Phone можно здесь.
Читать дальше → habrahabr.ru »2012-02-16 13:50 habrahabr.ru / Новости / C | | 7 | Привет, Хабр!
В этой статье речь пойдет о разработке простейшего плеера с использованием библиотек из проекта FFmpeg.
Я не нашел на хабре статей на данную тематику, поэтому решил восполнить этот пробел.
Декодирование видео будет осуществляться с помощью библиотек FFmpeg, отображение — с помощью SDL.
Читать дальше → habrahabr.ru »2012-02-08 02:00 habrahabr.ru / Новости / C | | 8 | Сегодня мы будет обсуждать технические аспекты и реализацию задач на Python и C/C++, которыми нас будет закидывать инженер из Google. Начнём с самых тривиальных проблем с последующим нарастанием сложности. Параллельно обратим внимание о чём стоит упомянуть во время интервью и где не попасть в ловушку.
Читать дальше → habrahabr.ru »2012-02-07 01:14 habrahabr.ru / Новости / C | | 9 | Паттерн MVVM делится на три части:
Модель (Model), так же, как в классическом паттерне MVC, Модель представляет собой фундаментальные данные, необходимые для работы приложения.
Вид/Представление (View) так же, как в классическом паттерне MVC, Вид — это графический интерфейс, то есть окно, кнопки и.т.п.
Модель вида (ViewModel, что означает «Model of View») является с одной стороны абстракцией Вида, а с другой предоставляет обертку данных из Модели, которые подлежат связыванию. То есть она содержит Модель, которая преобразована к Виду, а так же содержит в себе команды, которыми может пользоваться Вид, чтобы влиять на Модель.
Зачастую возникает необходимость подписываться на события представления в модели представления или переопределять его методы (например, метод OnNavigatedFrom или OnNavigatedTo). Так как сам шаблон пропагандирует разделение логики и представления, писать в code behind уж очень не хочется.
Хочу продемонстрировать небольшой ToolKit, который можно взять за основу в небольших проектах, и немного облегчить процесс разработки.
Читать дальше → habrahabr.ru »2012-02-03 12:03 habrahabr.ru / Новости / C | | 10 |  Добрый день!
Совсем недавно заинтересовался платформой Arduino. После того, как плата Arduino Mega 2560 была получена в подарок на Новый Год я, как приличный начинающий любитель робототехники, поморгал диодом, в том числе через кнопочку (которые, кстати, были выпаяны со старой разобранной мышки для компьютера).
Вот после таких стандартных экспериментов я решил, что надо сделать что-то полезное. Вдохновился различными видео с youtube, в которых показывали, как с помощью Arduino + Python было реализовано физическое уведомление (у кого-то лампочка мигала, у кого-то флажок поднимался) о получении новой почты на ящик gmail.
В данной статье хочу рассказать о своем опыте создания такой «уведомлялки». Из «железа» необходимо совсем мало, вот то, что использовал я:
— Плата Arduino Mega 2560 – 1 шт.
— USB-кабель для поключения Arduino к компьютеру – 1 шт.
— Светодиод – 1 шт.
Читать дальше → habrahabr.ru »2012-01-28 09:23 habrahabr.ru / Новости / C | | 11 | Префикс
Как бы банально это не звучало, но поискав готовое решение, которое могло бы (по моему разумению) полностью поддерживать работу с NMEA — сообщениями, я его не обнаружил.
Проштудировав официальный документ, я всецело пропитался идеей непременно это реализовать и недолго думая сам взял себя на понт.
Фабула
Да простят меня люди сведущие, но для прочей ясности я все же кратко опишу физику явления.
Итак, сообщение стандарта NMEA, в самом стандарте называются «sentence», тот, кто эти «предложения» «говорит» — «Talker». Так например, GPS-применик в рамках NMEA имеет идентификатор «GP», а наш ответ чемберлену — «GL».
Существующие решения работали либо только с этими двумя типами устройств, а в лучшем случае понимали различные специфические для конкретных производителей (Germin, UBLox, и пр.) приемников команды.
Да и кто знает, вдруг срочно нужно будет интерпритировать данные поступающие с атомных часов (Talker: ZA), или спозиционироваться по системе Loran-C (Talker: LC), ну а возможность поболтать с автопилотом (Talker: AG) вообще нельзя исключать!
Читать дальше → habrahabr.ru »2011-11-13 22:30 habrahabr.ru / Новости / C | | 12 | На днях нужно было написать программу, вычисляющую среднеквадратичное приближение функции, заданной таблично, по степенному базису — методом наименьших квадратов. Сразу оговорюсь, что тригонометрический базис я не рассматривал и в этой статье его брать не буду. В конце статьи можно найти исходник программы на C#.
Читать дальше → habrahabr.ru »2011-10-27 13:44 habrahabr.ru / Новости / C | | 13 | Введение
Многие программисты считают написание квайнов (программ, выводящих свой исходный код) непосильной задачей. И действительно — все эти цепные квайны и квайны различного порядка, при взгляде на которые можно потеряться в казалось бы бессмысленном наборе символов…
Однако на самом деле написать квайн на каком-либо языке не так сложно, как кажется. Сейчас я расскажу, как сделать это на различных языках программирования. Более того, мы не будем использовать «хаки» интерпретеруемых языков вроде операции вывода исходного кода и функций типа eval, а также напишем квайны на интерпретируемых и компилируемых языках.
Читать дальше → habrahabr.ru »2011-09-11 12:43 habrahabr.ru / Новости / C | | 14 | Сегодня на кывте был задан очередной весьма интересный вопрос о том, почему в языке C# существуют неявно типизированные локальные переменные (implicitely-typed local variables) a.k.a. var, но нет неявно типизированных полей?
На самом деле, такое положение дел вовсе не случайно; так что давайте рассмотрим несколько причин, почему компилятор ведет себя именно так, а не иначе.
Читать дальше → habrahabr.ru »2011-08-25 22:49 habrahabr.ru / Новости / C | | 15 | Здравствуйте, Великие и Ужасные хабражители!
Как я недавно узнал, не так много народу знает о том, как работает сборщик мусора. Хотя я понимаю, что 99% разработчиков это не особо нужно, но я хотел бы, чтобы все, кто разрабатывают приложения на .NET, знали принцип его работы. В этой статье я постараюсь вкратце рассказать, как собственно работает сборщик мусора.
Базовые сведения о времени жизни объекта
Как известно, при инициализации объекта в памяти выделяет нужное под объект место. Использование ключевого слова new приводит к добавление объекта класса в так называемую управляемую кучу, а назад возвращается ссылка на объект.
При создании приложений на C# можно смело полагать, что исполняющая среда .NET будет сама заботиться об управляющей куче без непосредственного вмешательства со стороны программиста. На самом деле "золотое правило" по управлению памятью звучит так:
Размещайте объект в управляющей куче с помощью ключевого слова new и забывайте об этом.
Читать дальше → habrahabr.ru »2011-08-09 19:19 habrahabr.ru / Новости / C | | 16 | Как известно, в .NET память делится на две категории: стек (Stack) и управляемая куча (managed heap, далее просто куча). На стеке располагается ссылка(ObjectRef) на объект (ObjectInstance), который, в свою очередь, располагается в куче.
В данной статье речь пойдет о расположении объекта в куче.
Предполагается, что у читателя имеются знания о:
1. stack
2. managed heap
3. GC
4. Слабые ссылки (weak references)
Читать дальше → habrahabr.ru »2011-08-02 20:06 habrahabr.ru / Новости / C | | 17 | Большая часть времени исполнения программы приходится на циклы: это могут быть вычисления, прием и обработка информации и т.д. Правильное применение техник оптимизации циклов позволит увеличить скорость работы программы. Но прежде, чем приступать к оптимизациям необходимо выделить «узкие» места программы и попытаться найти причины падения быстродействия.
Читать дальше → habrahabr.ru »2011-07-29 14:52 habrahabr.ru / Новости / C | | 18 |  Мы рады представить вам изменение в интерфейсе поиска! Кто-то из вас, наверное, уже сталкивался с ним, а сегодня нововведение появилось у всех. Речь идёт о «залипающей» строке поиска.Теперь поисковая строка всегда рядом, даже если вы прокрутили страницу результатов поиска в самый низ.Когда вы начинаете скролить страницу, поисковая стрелка прилипает к верхней границе окна. Если после прочтения энного результата вы захотите перезадать запрос, теперь не обязательно возвращаться в начало страницы. Чтобы не мешать просмотру результатов поиска, залипающая строка меняет внешний вид и становится бесцветной. А когда строка снова понадобится, то загорится привычным жёлтым цветом. Экспериментируем, улучшаем, стараемся
Команда Яндекс.Поиска habrahabr.ru »2011-07-22 12:52 habrahabr.ru / Новости / C | | 19 | Каждый из нас ругал синоптиков, когда оказывался под дождем, не имея в руках зонта. В топике я расскажу Вам как сделать прогноз погоды на основе модели WRF (Weather Research & Forecasting Model) на несколько суток вперед.
Читать дальше → habrahabr.ru »2011-07-22 12:46 habrahabr.ru / Новости / C | | 20 |  Уверен, что на Хабре обитает огромное число юзеров, облизывающихся при чтении описаний технологий и архитектур, используемых в молодых, динамичных и, что наиболее важно, быстрорастущих в своей пользовательской базе, компаний. К сожалению, относительно небольшое количество наших соотечественников работает в таких компаниях по всему миру, а те, кто все-таки трудится во внутренней кухне, связаны различными условиями трудовых договоров или банальным NDA, запрещающим сливать публике самые интересные подробности. Тем не менее, я лично знаю большое количество специалистов, особенно заинтересованных в высоких нагрузках и не знающих, где получить эту информацию из первых рук.
Эту проблему можно решить единственным способом — предоставить слово кому-то из менеджеров отдела разработки или любому другому человеку, занимающему адекватно высокий пост и разбирающемуся в разработке, а после — тянуть, тянуть из него все подробности. Примерно так поступили в Information Queue, опросив одного из инженеров Twitter'а — Эвана Уивера (Evan Weaver) о том, почему компания так долго развивавшаяся на «рельсах», решила переключиться на использование других технологий и какие это имело последствия.
В этом материале я буду всецело ссылаться на слова Эвана, объясняющего суть миграции и выгод, получаемых от использования JVM, в первую очередь — производительности и, все той же, масштабируемости. Но как мы узнаем чуть позже, решение было так же продиктовано желанием изолировать отдельные сервисы, а так же слегка изменить общую архитектуру продукта.
Итак, история начинается в прошлом году, когда Twitter анонсировал изменения в архитектуре бэкэнда (message queue), а так же заявил о намерении переписать Twitter Storage на Scala, а весной началась работа по переписыванию всего поискового движка. Как часть этих изменений, БД MySQL (лежавшая в основе поиска) была заменена Lucene. И, наконец, совсем недавно команда разработчиков заявила о замене Ruby on Rails в области поиска — на его место встал Java-сервер, который они сами называют Blender. Результатом этой замены стало трехкратное снижение задержки при выполнении поискового запроса.
Читать дальше → habrahabr.ru »2011-07-10 10:27 habrahabr.ru / Новости / C | | 21 |  Всем привет! Сегодня у меня еще одно радостное сообщение для всех кто еще ищет замену Reflector’у — наконец-то вышел “в публику” декомпилятор dotPeek от компании JetBrains.
И как же это счастье выглядит? habrahabr.ru »2011-05-12 14:06 habrahabr.ru / Новости / C | | 22 | Небольшой, но очень удобный помощник, генератор классов C# из JSON. Вставляем JSON в левое поле – получаем сгенерированные C# классы справа. habrahabr.ru »2011-05-06 01:16 habrahabr.ru / Новости / C | | 23 |  Оглавление (на данный момент)
Часть 1. Описание, операции, применения.
Часть 2. Ценная информация в дереве и множественные операции с ней.
Часть 3. Декартово дерево по неявному ключу.
To be continued...
Очень сильное колдунство
После всей кучи возможностей, которые нам предоставило декартово дерево в предыдущих двух частях, сегодня я совершу с ним нечто странное и кощунственное. Тем не менее, это действие позволит рассматривать дерево в совершенно новой ипостаси — как некий усовершенствованный и мощный массив с дополнительными фичами. Я покажу, как с ним работать, покажу, что все операции с данными из второй части сохраняются и для модифицированного дерева, а потом приведу несколько новых и полезных.
Вспомним-ка еще раз структуру дерамиды. В ней есть ключ x, по которому дерамида есть дерево поиска, случайный ключ y, по которому дерамида есть куча, а также, возможно, какая-то пользовательская информация с (cost). Давайте совершим невозможное и рассмотрим дерамиду… без ключей x. То есть у нас будет дерево, в котором ключа x нет вообще, а ключи y — случайные. Соответственно, зачем оно нужно — вообще непонятно :)
На самом деле расценивать такую структуру стоит как декартово дерево, в котором ключи x все так же где-то имеются, но нам их не сообщили. Однако клянутся, что для них, как полагается, выполняется условие двоичного дерева поиска. Тогда можно представить, что эти неизвестные иксы суть числа от 0 до N-1 и неявно расставить их по структуре дерева:
Получается, что в дереве будто бы не ключи в вершинах проставлены, а сами вершины пронумерованы. Причем пронумерованы в уже знакомом с прошлой части порядке in-order обхода. Дерево с четко пронумерованными вершинами можно рассматривать как массив, в котором индекс — это тот самый неявный ключ, а содержимое — пользовательская информация c. Игреки нужны только для балансировки, это внутренние детали структуры данных, ненужные пользователю. Иксов на самом деле нет в принципе, их хранить не нужно.
В отличие от прошлой части, этот массив не приобретает автоматически никаких свойств, вроде отсортированности. Ведь на информацию-то у нас нет никаких структурных ограничений, и она может храниться в вершинах как попало.
Если интересно - под кат habrahabr.ru »2010-08-23 11:15 habrahabr.ru / Новости / C | | 24 | Оглавление (на данный момент)
Часть 1. Описание, операции, применения.
Часть 2. Ценная информация в дереве и множественные операции с ней.
Часть 3. Декартово дерево по неявному ключу.
To be continued...
Тема сегодняшней лекции
В прошлый раз мы с вами познакомились — скажем прямо, очень обширно познакомились с понятием декартового дерева и основным его функционалом. Только до сих мы с вами использовали его одним-единственным образом: как В«квази-сбалансированноеВ» дерево поиска. То есть пускай нам дан массив ключей, добавим к ним случайно сгенерированные приоритеты, и получим дерево, в котором каждый ключ можно искать, добавлять и удалять за логарифмическое время и минимум усилий. Звучит неплохо, но мало.
К счастью (или к сожалению?), реальная жизнь такими пустяковыми задачами не ограничивается. О чем сегодня и пойдет речь. Первый вопрос на повестке дня — это так называемая K-я порядковая статистика, или индекс в дереве, которая плавно подведет нас к хранению пользовательской информации в вершинах, и наконец — к бесчисленному множеству манипуляций, которые с этой информацией может потребоваться выполнять. Поехали.
Ищем индекс
В математике, K-я порядковая статистика — это случайная величина, которая соответствует K-му по величине элементу случайной выборки из вероятностного пространства. Слишком умно. Вернемся к дереву: в каждый момент времени у нас есть декартово дерево, которое с момента его начального построения могло уже значительно измениться. От нас требуется очень быстро находить в этом дереве K-й по порядку возрастания ключ — фактически, если представить наше дерево как постоянно поддерживающийся отсортированным массив, то это просто доступ к элементу под индексом K. На первый взгляд не очень понятно, как это организовать: ключей-то у нас в дереве N, и раскиданы они по структуре как попало.
Решение и вся статья - под катом habrahabr.ru »2010-08-18 22:11 habrahabr.ru / Новости / C | | 25 | Декартово дерево (cartesian tree, treap) — красивая и легко реализующаяся структура данных, которая с минимальными усилиями позволит вам производить многие скоростные операции над массивами ваших данных. Что характерно, на Хабрахабре единственное его упоминание я нашел в обзорном посте многоуважаемого winger, но тогда продолжение тому циклу так и не последовало. Обидно, кстати.
Я постараюсь покрыть все, что мне известно по теме — несмотря на то, что известно мне сравнительно не так уж много, материала вполне хватит поста на два, а то и на три. Все алгоритмы иллюстрируются исходниками на C# (а так как я любитель функционального программирования, то где-нибудь в послесловии речь зайдет и о F# — но это читать не обязательно :). Итак, приступим.
Введение
В качестве введения рекомендую прочесть пост про двоичные деревья поиска того же winger, поскольку без понимания того, что такое дерево, дерево поиска, а так же без знания оценок сложности алгоритма многое из материала данной статьи останется для вас китайской грамотой. Обидно, правда?
Следующий пункт нашей обязательной программы — куча (heap). Думаю, также многим известная структура данных, однако краткий обзор я все же приведу.
Представьте себе двоичное дерево с какими-то данными (ключами) в вершинах. И для каждой вершины мы в обязательном порядке требуем следующее: ее ключ строго больше, чем ключи ее непосредственных сыновей. Вот небольшой пример корректной кучи:
На заметку сразу скажу, что совершенно не обязательно думать про кучу исключительно как структуру, у которой родитель больше, чем его потомки. Никто не запрещает взять противоположный вариант и считать, что родитель меньше потомков — главное, выберите что-то одно для всего дерева. Для нужд этой статьи гораздо удобнее будет использовать вариант со знаком В«большеВ».
Сейчас за кадром остается вопрос, каким образом в кучу можно добавлять и удалять из нее элементы. Во-первых, эти алгоритмы требуют отдельного места на осмотр, а во-вторых, нам они все равно не понадобятся.
А теперь собственно про декартово дерево habrahabr.ru »2010-08-16 17:53 habrahabr.ru / Новости / C | | 26 |  Сигналы и слоты используются для коммуникации между объектами. Механизм сигналов и слотов главная особенность Qt и вероятно та часть, которая отличаетcя от особенностей, предоставляемых другими фреймворками.
Читать дальше → habrahabr.ru »2009-02-01 23:55 habrahabr.ru / Новости / C | | 27 | В прошлой части мы рассмотрели библиотеку RubyInline, которая позваляет делать вставки C кода прямо в Ruby методы. Ее очень удобно использовать если нам нужно ускорить несколько критичных методов. Но если нам нужно реализовать C библиотеку и использовать в Ruby, или сделать обертку для уже существующей, то нам на помощь придет C API для создания расширений.
Читать дальше → habrahabr.ru »2009-01-15 16:05 habrahabr.ru / Новости / C | | 28 |  Ruby очень легко интегрируется с языком программирования C. Можно создавать расширения для Ruby. Или мы можем сделать обертку для библиотеки на C, и использовать ее как обычную Ruby библиотеку. Так же можно реализовать критичные вычисления на C прямо в Ruby коде! Другой вариант интеграции — это использование Ruby в C/C++ программах, в качестве скриптового языка. Например, как это сделано в Google SketchUp.
Давайте посмотрим, какие возможности Ruby представляет для интеграции с C.
Читать дальше → habrahabr.ru »2009-01-12 18:35 habrahabr.ru / Новости / C | | 29 | Большенство адэптов vim, которые использую его для работы с кодом, знают про такие комманды как: make и: cw. Первая запускает make, а вторая выводит список ошибок.
Так уж сложилось, что мои основные рабочие (те которые использую на работе :)) языки это Си и C++. И часто бывает, что нужно написать программку в один файл, дабы проверить какой-то алгоритм, функцию или идею. При том писать makefile для одного файла в лом, а так хочется использовать привычную комбинацию клавРёш. Набросал замечательный солюшен:
if filereadable("Makefile")
set makeprg=make -j4
map <C-b> :make<CR>:cw<CR>
else
map <C-b> :make %:r<CR>:cw<CR>
endif
Как видно суть в том, что запускать просто make при наличае makefile и make имя_файла при отсутствии. make -j4 указывает на запуск четырёх потоков сборки, для двухядерных процессоров самое оно, особенно в сочетании с ключеком -pipe для gcc :) habrahabr.ru »2008-09-19 18:36 habrahabr.ru / Новости / C | | 30 | В данной статье, я поведу речь о разработке пользовательских интерфейсов с помощью библиотеки QT, также мы с вами сделаем краткий экскурс в историю компании Trolltech, и рассмотрим особенности разработки на QT под Mac OS X на небольшом примере.
( Подробности под катом ) habrahabr.ru »2008-09-08 02:36 habrahabr.ru / Новости / C |
|
| |
|