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

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

Восстановить пароль Регистрация
 
stawerfar
 Аватар для stawerfar
140 / 54 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
27.07.2012, 11:49     Предопределённые макросы #1
Всем привет! Скажите кто знает как объяснить компилятору что он работает в Linux или Win32? Я слышал что есть предопределенные макросы, но я не знаю как с ними работать. Подскажите пожалуйста кто в курсе.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2012, 11:49     Предопределённые макросы
Посмотрите здесь:

Макросы C++
макросы C++
C++ Макросы
Макросы C++
C++ макросы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 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 все сработало как и ожидалось.
stawerfar
 Аватар для stawerfar
140 / 54 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
27.07.2012, 12:26  [ТС]     Предопределённые макросы #3
Цитата Сообщение от Roof Посмотреть сообщение
По-моему формулировка вопроса неверна, так как компилятор работает в той ОС которая у Вас установлена.
Да вы правы, но мне нужно это для того чтобы в будущем направить компилятор на нужные мне блоки кода. Ну например если я в Win32 то использовать это... , если там то .... ну и так далее!
Большое спасибо за инфу!
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
27.07.2012, 12:34     Предопределённые макросы #4
http://msdn.microsoft.com/en-us/libr...ay(VS.80).aspx
По ссылке нашел табличку с пояснениями по WIN - там еще есть _WIN64.
_WIN32 Defined for applications for Win32 and Win64. Always defined.
_WIN64 Defined for applications for Win64.
Но не знаю для всех ли компиляторов это.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
27.07.2012, 13:18     Предопределённые макросы #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Тут все есть

Добавлено через 1 минуту
Цитата Сообщение от Roof Посмотреть сообщение
Но не знаю для всех ли компиляторов это.
см. по ссылке выше
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
27.07.2012, 14:06     Предопределённые макросы #6
Nameless One, спасибо за ссылку, полезно.
Правильно ли я понимаю - если у macro нет никаких оговорок про компиляторы, то этот macro в стандарте языка?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2012, 15:20     Предопределённые макросы
Еще ссылки по теме:

Макросы в С++ C++
C++ макросы
C++ Макросы в enum?

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
27.07.2012, 15:20     Предопределённые макросы #7
Roof, в стандарте, ЕМНИП, ничего про платформозависимые макросы не говорится
Yandex
Объявления
27.07.2012, 15:20     Предопределённые макросы
Ответ Создать тему
Опции темы

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