Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
148 / 62 / 8
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
1

Предопределённые макросы

27.07.2012, 11:49. Просмотров 1687. Ответов 6
Метки нет (Все метки)

Всем привет! Скажите кто знает как объяснить компилятору что он работает в Linux или Win32? Я слышал что есть предопределенные макросы, но я не знаю как с ними работать. Подскажите пожалуйста кто в курсе.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.07.2012, 11:49
Ответы с готовыми решениями:

Предопределённые константы препроцессора
Добрый вечер. Подскажите, кто знает, где найти список предопределённых констант препроцессора...

как лучше всего добавлять предопределенные изменяемые значения char в интерфейс и реализацию класса?
Есть несколько непонятных мне моментов связанных с тем как использовать char в классе. 1. как...

как лучше всего добавлять предопределенные изменяемые значения массива char в интерфейс и реализацию класса?
Есть несколько непонятных мне моментов связанных с тем как использовать char в классе. 2. Как...

Макросы в С++
Доброго времени суток. Подскажите, где можно почитать про написание макросов для классов? У меня...

6
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
27.07.2012, 12:22 2
Цитата Сообщение от stawerfar Посмотреть сообщение
Скажите кто знает как объяснить компилятору что он работает в Linux или Win32?
По-моему формулировка вопроса неверна, так как компилятор работает в той ОС которая у Вас установлена.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main() {
#ifdef linux
    // Linux code
    std::cout << "Hello Linux!" << std::endl;
    std::cout << "Hello Linux again!" << std::endl;
#elif _WIN32
    // Windows code
    std::cout << "Hello Windows!" << std::endl;
#elif __APPLE__
    // Mac code
    std::cout << "Hello Mac!" << std::endl;
#else
    //For other OS
    std::cout << "Hello Unknown!" << std::endl;
#endif
 
    return 0;
}
У меня на Linux Debian все сработало как и ожидалось.
1
148 / 62 / 8
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
27.07.2012, 12:26  [ТС] 3
Цитата Сообщение от Roof Посмотреть сообщение
По-моему формулировка вопроса неверна, так как компилятор работает в той ОС которая у Вас установлена.
Да вы правы, но мне нужно это для того чтобы в будущем направить компилятор на нужные мне блоки кода. Ну например если я в Win32 то использовать это... , если там то .... ну и так далее!
Большое спасибо за инфу!
0
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
27.07.2012, 12:34 4
http://msdn.microsoft.com/en-u... S.80).aspx
По ссылке нашел табличку с пояснениями по WIN - там еще есть _WIN64.
_WIN32 Defined for applications for Win32 and Win64. Always defined.
_WIN64 Defined for applications for Win64.
Но не знаю для всех ли компиляторов это.
1
Эксперт С++
5811 / 3462 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
27.07.2012, 13:18 5
Лучший ответ Сообщение было отмечено как решение

Решение

Тут все есть

Добавлено через 1 минуту
Цитата Сообщение от Roof Посмотреть сообщение
Но не знаю для всех ли компиляторов это.
см. по ссылке выше
4
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
27.07.2012, 14:06 6
Nameless One, спасибо за ссылку, полезно.
Правильно ли я понимаю - если у macro нет никаких оговорок про компиляторы, то этот macro в стандарте языка?
0
Эксперт С++
5811 / 3462 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
27.07.2012, 15:20 7
Roof, в стандарте, ЕМНИП, ничего про платформозависимые макросы не говорится
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2012, 15:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Макросы
Ребята помогите!Надо переделать все пож макросы.Но в литературе как -то всё обрывками...

макросы
#define EMPTY 0x00 #define ILLEGAL 0xF0 #define B_PRIVATE 0x01 // 1 бит -...

Макросы
Здравствуйте, сделал программу, а мне еще сказали нужно сделать её с использованием макросов, знаю...

макросы
#include &lt;iostream&gt; using namespace std; #define printarray(x,y)//вывод массива x-имя массива,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.