Pull to refresh

Comments 23

UFO just landed and posted this here
Просто у меня есть папка в которой я делаю свой проект, использую эти директивы, могу сразу посмотреть что получается. А затем когда хочу выложит готовую версию (обычно я сразу 3 различные версии выкладываю) то использую эту программку.
Ну вот перед тем как выкладывать пропускаете через Сишный препроцессор… За старания конечно +, но зачем изобретать велосипед?
GNU C Preprocessor docs
Думается не все знают, что такое «Сишный препроцессор» и с чем его едят.
Я знаю что такое «Сишный препроцессор», но я не знал что им можно вот так-вот воспользоваться. Спасибо :)
Я в смысле, что получилась удобная для некоторых утилита, не требующая наличия компилятора в системе.
Наверное имелось в виду, что наличие этих меток никак не скажется на работоспособности кода.
а почему стандартные define не использовать?
Потому что мне нужно что бы код в различных версия скрипта либо присутствовал, либо нет.
Есть поддержка вложенности IFов?

Условие насколько сложным может быть? Или они только как boolean-флаги?
Да, поддержка вложенных if-ов есть.

Условия только самые простые. Только один флаг. Я поэтому и назвал их как «#ifdef», а не просто «#if»
В приведенном примере, думается, нужно будет заменить кусок "/*#else" на "#else /*", так как после вырезания директив получается висящий в воздухе либо начало комментария, либо конец.
Не, в примере всё правильно. Я забыл указать что директивы врезаются вместе со стройками на которых они находятся.
UFO just landed and posted this here
Нет, почему это? :)
<?php
define('COPY',true);

if(defined('COPY'))
{

$chat_page = new View('copy');
$chat_page->SetVars(array('copyright' => $this->Copyright()));
$this->html = $chat_page->Get();
$this->Display();

}else{

$this->html = View('no_copy')::Call();
$this->Display();

}
?>
Это код будет включён во все версии исходников, а мне же нужно было что бы в разные версии исходников включался разный код.
UFO just landed and posted this here
раскидать код по разным файлам/папкам. включать в сборку только нужную папку

в самом примитивном случае выглядит так:

define('DIR_CONTROLLER', COPY ? '/copy' : '/standart');
require_once DIR_CONTROLLER . '/index.php';

можно и так, мне больше по душе вариант с #ifdef
остается только надеяться, что ваш код никто не будет поддерживать потом. а то он очень удивится :)
О, да! :) Эту штуку я использую только для себя.
Sign up to leave a comment.

Articles