![]() |
|
![]() ![]() ![]() |
|
Swit |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 27.9.2005 Репутация: нет Всего: нет |
Приветствую! Вот выполняю такой код:
#include <iostream.h> #include <conio.h> #include <windows.h> #define Nero char *Rus (char *text); void main (void) { #ifdef Dosia cout << Rus ( " Первое выполнение " ) << endl; #elif Nero cout << Rus ( " Второе выполнение " ) << endl; #else cout << Rus ( " Третье выполнение " ) << endl; #endif getch (); } char bufRus [300]; char *Rus (char *text) { CharToOem (text,bufRus); return bufRus; } // #elif (эквивалент else if в обычной структуре if) но почему - то на нем компиляция и заканчивается, может кто подскажет в чем дело, хотя если ввожу Dosia в директиву #define первое выполнение проходит. |
|||
|
||||
DeadSoul |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: нет Всего: 11 |
Swit,
Используй теги. Так
более читабельно. Точно оно туда не доходит это правильно. Смотри:
Что выведет? Здесь ты согласен с компилятором? -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
||||
|
|||||
Swit |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 27.9.2005 Репутация: нет Всего: нет |
DeadSoul, согласен но мне просто хочется разобраться со своим кодом. Про теги я знаю но всеже почему не идет #elif Nero. Может у кого еще есть умные мысли
Благодарю за совет! |
|||
|
||||
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: нет Всего: 11 |
Swit, ты второй код смотрел? Что он выведет?
else if( что препроцессорный, что сишный) выпоняется только если не выполнился if. Вот и все -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
Swit |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 27.9.2005 Репутация: нет Всего: нет |
DeadSoul дык в том то и дело что условие у нас такое что если не выполняется
#define Dosia а вместо Dosia стоит Nero то выполняется второе услови. В этом и есть отличие от обычных структур т.е. можно управлять выводом на протяжении всего кода изменив всего лишь #define Name!!! |
|||
|
||||
DeadSoul |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: нет Всего: 11 |
Swit
Я знаю для чего нужна условная компиляция ![]() Ларчик тоньше:
Разницу видишь? Вот она:
-------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
||||||
|
|||||||
Swit |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 27.9.2005 Репутация: нет Всего: нет |
DeadSoul дружище я верю что ты разбираешься в условной компиляции, но к примеру когда выполняется код такого вида:
#ifdef Dosia cout << Rus ( " Первое выполнение " ) << endl; #else if Nero cout << Rus ( " Второе выполнение " ) << endl; #endif то все проходит без всяких там загадок ![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |