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

Необходимо разобраться с директивами условной компиляции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать класс "угол" http://www.cyberforum.ru/cpp-beginners/thread436581.html
описать класс угол (ввод-вывод, переведение в радианы, выч-е синуса)(c++)
C++ Дроби!классы что исправить чтобы скомпилировалось?// дроби.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <string.h> using namespace std; class... http://www.cyberforum.ru/cpp-beginners/thread436555.html
C++ Подсчитать количество таких элементов массива, для которых выполняется условие
Заданы 2 массива А и В , каждый из которых содержит n элементов. Подсчитать количество таких k, для которых A>B.
C++ Преобразование в массив
Здравствуйте. У меня вопрос. Есть например структура ST. Переменная V это **ST. После выполнения функции в ST массив структур. Вопрос: Как его использовать? struct ST { }*pST; pST* V; //...
C++ Роберт Седжвик, 2 том. http://www.cyberforum.ru/cpp-beginners/thread436531.html
вечер добрый, есть ли в сети, и вообще, перевиден ли на русский язык, второй том книги Роберта Седжвика Фундаментальные алгоритмы на С++? Там главы про графы, строки, геометрия, и др.?
C++ Закрывается программа Учу cpp. Переписал код с учебного задания, скомпилировал, нажал Build>Build solution, запустил. Программа запускается, но результат не выдает. Также пробовал пустую программу в одну строчку, не пишет... подробнее

Показать сообщение отдельно
kravam
быдлокодер
1697 / 884 / 45
Регистрация: 04.06.2008
Сообщений: 5,481

Необходимо разобраться с директивами условной компиляции - C++

27.01.2012, 20:51. Просмотров 1883. Ответов 23
Метки (Все метки)

Друзья! Боюсь, что без предисловий не обойтись. Постараюсь, чтобы они были короткими. Поехали:
Часть кода:
C++
1
#include<semaphore.h>
Сообщение ккомпилятора:
Bash
1
include\semaphore.h:152 'mode_t' has not been declared
++++++++++++++++++++++++++++++++++++++++++++++++

Лезу в include\semaphore, вижу:
C++
1
2
3
4
PTW32_DLLPORT int __cdecl sem_open (const char * name,
                int oflag,
                mode_t mode,
                unsigned int value);
Начинаю поиски типа mode_t,выыше, в этом же файле include\semaphore.h наблюдаю такие объявления:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
 * This is a duplicate of what is in the autoconf config.h,
 * which is only used when building the pthread-win32 libraries.
 */
 
#ifndef PTW32_CONFIG_H
#  if defined(WINCE)
#    define NEED_ERRNO
#    define NEED_SEM
#  endif
#  if defined(__MINGW64__)
#    define HAVE_STRUCT_TIMESPEC
#    define HAVE_MODE_T
#  elif defined(_UWIN) || defined(__MINGW32__)
#    define HAVE_MODE_T
#  endif
#endif
//Тут всякие разные объявления
#ifndef HAVE_MODE_T
typedef unsigned int mode_t;
#endif

Ну волт, собсно говоря и всё. В былые времена я бы приписал не задумываясь:
C++
1
typedef unsigned int mode_t;
Но тут мне захотелось сыграть по правилам. То есть я так понимаю, что mode_t становится известным компилятору только если определена переменная __MINGW32__; а как правильно её определить? Знания, которые я почерпнул здесь
Препроцессорные директивы в C/C++ (#include, #define и прочее)
помогут мне просто написать:
C++
1
typedef unsigned int mode_t;
но повторюсь, хотелось бы сыграть по правилам, то есть разобраться для начала со строчкой:
C++
1
#ifndef PTW32_CONFIG_H
Ну и далее по порядку. Спасибо, кто откликнется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru