Форум программистов, компьютерный форум CyberForum.ru

Директива препроцессора #if - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
OrmaJever
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
08.08.2012, 23:02     Директива препроцессора #if #1
Вобще при коспиляции файла взятого с офф сайта микрософт endian.h
Получаю вот такие ошибки
C++
1
2
3
17|error: operator '==' has no left operand
95|error: operator '==' has no left operand
131|error: operator '!=' has no left operand
соответствено на строки
C++
1
2
3
#if (BIT_ORDER == BYTE_ORDER) // 17
#if BYTE_ORDER==BIG_ENDIAN // 95
#if (BYTE_ORDER != DEVICE_ORDER) // 131
Почему они возникают? Обе константы вроде как определены.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2012, 23:02     Директива препроцессора #if
Посмотрите здесь:

директива препроцессора C++
C++ Директивы препроцессора
Обработка препроцессора C++
C++ Использование препроцессора
C++ макрос препроцессора
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
08.08.2012, 23:11     Директива препроцессора #if #2
Уверен? Пишет же, что в левой части сравнения пустышка. И откуда ты взял макрос BIT_ORDER, такого понятия вроде бы как и нету
OrmaJever
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
09.08.2012, 00:06  [ТС]     Директива препроцессора #if #3
Первые строки файла
C++
1
2
3
#ifndef BIT_ORDER
#define BIT_ORDER BYTE_ORDER
#endif
если константы BIT_ORDER нет то она равна BYTE_ORDER, ну а если есть значит есть, и ошибки быть не должно.
А вот константу BYTE_ORDER обьявил я сам со значение 1, но из-за этого не может быть такой ошибки по-моему.

Добавлено через 42 минуты
ой, проблема решена, извините. Это и правда было из-за этого что была пустая константа, просто редактор не сохранял изменения перед компиляцией и я пол часа бился над этой проблемой пока сам не сохранил.
silent_1991
09.08.2012, 20:37     Директива препроцессора #if
  #4
 Комментарий модератора 
Ответ получен, холивар перенесён, тема закрыта, продолжение тут.
Yandex
Объявления
09.08.2012, 20:37     Директива препроцессора #if
Закрытая тема Создать тему
Опции темы

Текущее время: 03:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru