Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 13
1

Нюансы использования директивы препроцессора #define: найти и исправить ошибки в коде

05.10.2016, 10:39. Показов 860. Ответов 6
Метки нет (Все метки)

Добрый день. Помогите, пожалуйста, в решении задачи. Задача простая, но хочется разобраться с #define. У меня есть 3 файла: заголовочный my_f.h, файл с описанием функций my_f.cpp и файл с main() my_prog.cpp. У меня есть некий набор функций для работы с типом int и некий набор - с типом float. Эти функции описаны в файле my_f.cpp. В заголовочном файле my_f.h при помощи #define пишу :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
      #ifdef  INT_
      #define Sort SortMasInt
      #define ZopolMas ZapolInt
      #define ShowMas ShowInt 
      #define Type int 
      #indif
 
      #ifdef FLOAT_
      #define Sort SortMasFloat 
      #define ZopolMas ZapolFloat
      #define ShowMas ShowFloat 
      #define Type float
      #endif
В начале файла my_prog.cpp я задаю #define INT_ или #define FLOAT_. Проблема в том, что я хочу создать динамический массив типа Type *my_mass = new Type(SIZE), но не знаю как это сделать правильно.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2016, 10:39
Ответы с готовыми решениями:

Нюансы использования строк в стиле Си: найти и исправить ошибки в коде
Всем привет. Интересует такой вопрос почему ругается if (x <=5){ char slovo =...

Нюансы работы с конструктором копирования: найти и исправить ошибки в коде
Доброго дня! Разбирал тему "Конструктор копирования". Сделал самостоятельно наглядную программу,...

Директивы препроцессора Составить программу, использующую директивы препроцессора
1) Задать константы M1,M2,...,M5 и вычислить M1+ 2M2 + 3M3 + 4M4 + 5M5 2) С помощью директив #if,...

Использования препроцессора для обработки #define
Пусть имеется следующий код: #include <stdio.h> #include <windows.h> #define STO 100...

6
С чаем беда...
Эксперт CЭксперт С++
9075 / 4607 / 1250
Регистрация: 18.10.2014
Сообщений: 10,310
05.10.2016, 10:47 2
Цитата Сообщение от Koleso Посмотреть сообщение
Проблема в том, что я хочу создать динамический массив типа Type *my_mass = new Type(SIZE), но не знаю как это сделать правильно.
C++
1
Type *my_mass = new Type[SIZE];
0
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 13
05.10.2016, 10:55  [ТС] 3
Извиняюсь, я пишу Type *my_mass = new Type[SIZE] в файле my_prog.cpp, но компилятор ругается что *my_mass не задан идентификатор.
0
С чаем беда...
Эксперт CЭксперт С++
9075 / 4607 / 1250
Регистрация: 18.10.2014
Сообщений: 10,310
05.10.2016, 11:06 4
Цитата Сообщение от Koleso Посмотреть сообщение
Извиняюсь, я пишу Type *my_mass = new Type[SIZE] в файле my_prog.cpp, но компилятор ругается что *my_mass не задан идентификатор.
Ну тут уж трудно что-то сказать. Телепатов нет. Показывайте, что именно вы там пишете. В контексте.
0
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 13
05.10.2016, 11:41  [ТС] 5
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include "my_f.h"
#define INT
#define SIZE 10
using namespace std;
int main()
{
    Type *my_mass = new Type[SIZE];
    ZapolMas(*my_mass, SIZE);
    return 0;
}
0
С чаем беда...
Эксперт CЭксперт С++
9075 / 4607 / 1250
Регистрация: 18.10.2014
Сообщений: 10,310
05.10.2016, 11:45 6
Цитата Сообщение от Koleso Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include "my_f.h"
#define INT
#define SIZE 10
using namespace std;
int main()
{
    Type *my_mass = new Type[SIZE];
    ZapolMas(*my_mass, SIZE);
    return 0;
}
Ну так, во-первых, писать #define INT_ надо перед включением вашего заголовочного файла. А, во-вторых, куда вдруг пропало подчеркивание из INT_?
1
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 13
05.10.2016, 11:52  [ТС] 7
Спасибо !!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2016, 11:52

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Нюансы использования препроцессора и макросов: чему будет равно значение переменной a?
Чему будет равно значение переменной a? #define square(x) (x * x) int b = square(2.5); int a =...

Найти ошибки в коде и исправить эти ошибки (Наследование)
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h...

Найти ошибки в коде и исправить эти ошибки
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private:...

Найти ошибки в коде и исправить эти ошибки - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить...


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

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

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