powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / О мультиветвлениях в препроцессорной обработке
6 сообщений из 6, страница 1 из 1
О мультиветвлениях в препроцессорной обработке
    #33558362
tea#nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И снова же я о этом препроцессоре
по идее эта прога должна выводить сообщение <<"Все правильно сделал, работа стабильна"; т.к выражение верно==1, но у меня все эти дейстия просто игнорируются. Может я какую библиотеку не подключил или вообще не правильно сконструировал? подскажите, что не верно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
#include "stdafx.h"
#include <iostream> 
using namespace std;
#include"math.h"

#define F  1 
# if  0 + 0  cout<<"trym pyrym";
# elif  0 * 6  cout<<"trym pyrym";
# elif  0 / 4  cout<<"trym pyrym";
# elif F cout<<"Все правильно сделал, работа стабильна";
# else  cout<<"ERROR!сбой в работе-так не должно быть";
# endif

int main()
{ cout<< "прога для проверки мультиветвлений во время\n препроцессорной обработки"<<endl;

	return  0 ;
}
...
Рейтинг: 0 / 0
О мультиветвлениях в препроцессорной обработке
    #33558437
Gradient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут, скорее, вопрос "а что верно?" надо задавать.

До
Код: plaintext
#define F  1 
вроде нормально.

Программа начинает выполнение с функции main. Что там у нас?
Код: plaintext
1.
2.
3.
4.
int main()
{ cout<< "прога для проверки мультиветвлений во время\n препроцессорной обработки"<<endl;

	return  0 ;
}
- выводим строчку и завершаемся. Что не так?

Конструкция
Код: plaintext
1.
2.
3.
4.
5.
# if  0 + 0  cout<<"trym pyrym";
# elif  0 * 6  cout<<"trym pyrym";
# elif  0 / 4  cout<<"trym pyrym";
# elif F cout<<"Все правильно сделал, работа стабильна";
# else  cout<<"ERROR!сбой в работе-так не должно быть";
# endif
вообще вызывает недоумение:
1) за пределами какой либо функции
2) На С/С++ так писать неправильно


Надо написать что-то вроде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
int main()
{ cout<< "прога для проверки мультиветвлений во время\n препроцессорной обработки"<<endl;

#if def F
cout << "Все правильно сделал, работа стабильна";
#endif

	return  0 ;
}
...
Рейтинг: 0 / 0
О мультиветвлениях в препроцессорной обработке
    #33558482
Gradient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
#ifdef, конечно, слитно пишется. и лучше писать #if defined(symbol)

И не думаю, что там катят вычисления с плавающей точкой (их, кстати, с нулём-то сравнивать сложней и неочевидней, пожалуй, чем тебе кажется)
...
Рейтинг: 0 / 0
О мультиветвлениях в препроцессорной обработке
    #33558830
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я точно не помно, но кажется по стандарту все, что идет в строке директивы препроцессора после всех ее конструкций игнорируется.

Точно например что
#define EEE 123 here you may write a letter to your mom

будет работать и EEE будет "равно" числу 123.

Видимо так же и во всех остальных директивах мусор после директивы до конца строки игнорируется.

Не знаю это точно для всех директив кроме #define - нужно проверить.
...
Рейтинг: 0 / 0
О мультиветвлениях в препроцессорной обработке
    #33558839
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может я чего и напутал ...
...
Рейтинг: 0 / 0
О мультиветвлениях в препроцессорной обработке
    #33560567
tea#nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все разобрался.
окакзывается надо просто сиауты определять на следующей строке

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#define F  1 
int main()
{# if  0 + 0  
cout<<"trym pyrym";
# elif  0 / 4  
cout<<"trym pyrym";
# elif F 
cout<<"Все правильно сделал, работа стабильна";
# else  
cout<<"ERROR!сбой в работе-так не должно быть";
# endif
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / О мультиветвлениях в препроцессорной обработке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]