Hagrael, Это текст, обычный текст, т.к. он в кавычках, попробуй без кавычек... Вывод будет срабатывать и с Not и без, т.к. ты выводишь обычный текст. Fougerite - Rust Server OpenSource API TerraDev - Terraria OpenSource Hack
_getch тут вообще не при чём. Проблема вот в чём - после просмотра файла препроцессором долен остаться пустой файл. Я же поставил условие: #if PROGRAM_TYPE == ... А оно не срабатывает. В компилятор всё равно попадает всё, что написано в теле условия.
каждый #if-блок желательно закрывать парным #endif Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
froex, проскроллите код, у меня есть парный #endif =) Farcuat, зачем создавать лишние макросы? Я хочу запихать в PROGRAM_TYPE строчку, а не приравнять его к DEGREES или NOT_DEGRESS. Разве не строчка там приравнивается? о_О В общем, можете написать рабочий код, который в зависимости от макроса PROGRAM_TYPE пишет различный код? Буду премного благодарен.
Однако я не советую тебе так писать код на Си. Директива #if чаще всего используется внутри библиотечных файлов типа "conio.h", чтобы избежать их повторного включения в программу. Если нужно чтобы программа выполняла разные действия делай условия в программе, а не с помощью директив препроцессора.
Не пытайся уменьшать размер экзешника таким образом. Это же Си, ты не для браузера программируешь, загрузка кода по сети каждый раз не требуется.
Ещё 2 вопроса появились - каким образом работает такой вызов функции?
Code
static_cast<int>(var)
То есть каким макаром туда int в угловых скобках попадает? о_О И ещё - в char может быть 1 байт, _getch возвращает char, и когда пишешь cout << _getch(), то выводится буква. Выходит, на одну букву расходуется 8 бит или как?
ezhickovich, вот именно потому, что вы не поняли вопроса, вы и отправили меня на гугл =) Дело в том, что я не понимаю, каким образом <int> попадает в функцию? То есть я знаю такую операцию:
Code
class my_type { operator<int a> { cout << a; } }
И то с <...> не проверял, так что не знаю, будет ли работать, но загвоздка ещё вот в чём - static_cast ведь не объект, так что к нему по идее такое нельзя прицепить. Или я ошибаюсь?
ezhickovich, понятно, спасибо. Ну в общем, пока на этом зацикливаться думаю не стоит.
Добавлено (10.01.2011, 17:36) --------------------------------------------- А вот ещё вопрос - в каком порядке инициализируются функции? То есть у меня 3 функции, first, main, second (расположены в том же порядке, в котором написаны), как действует программа? То есть она ведь вначале инициализирует все функции, а лишь после выполняет функцию main или нет? Если да, то зачем прототипы?
Добавлено (10.01.2011, 17:39) --------------------------------------------- И зачем юзать статические переменные, если они всегда будут в памяти?
Kornival, понял =) Что у меня не так? Компилятор выдаёт ошибку:
Code
int initGame(bool map[]); int main() { return 0; bool map[20][15]; initGame(map); } int initGame(bool map[15][20]) { for (int i=0; i<20; i++) { for (int j=0; j<15; j++) { map[i][j]=false; } } map[0][0]=true; return 0; }
Вот ошибка: \Code Blocks\game\main.cpp||In function `int main()':| \Code Blocks\game\main.cpp|14|error: cannot convert `bool (*)[15]' to `bool*' for argument `1' to `int initGame(bool*)'