Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
2 / 2 / 2
Регистрация: 27.02.2016
Сообщений: 243
1

Как правильно создать функцию используя макрос

29.05.2017, 07:23. Показов 527. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет.
Как правильно сделать функцию вида float function(float i){ return (i);} через макрос?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2017, 07:23
Ответы с готовыми решениями:

Как правильно создать строку, используя swprintf?
Дело в том, что мне нужно записать три числа в строку: double, int и double. Числа такие: 1.1414 ...

Как правильно создать функцию
Здраствуйте! В матлабе я чайник, хотел просто уточнить правильно ли я понимаю начальное условие...

Как правильно создать цикл или функцию
Добрый день! Подскажите пожалуйста, хочу сделать цикл или функцию что бы повторялось i-раз. Но не...

Как правильно создать функцию и затем вызвать ее
#include<string> #include <cmath> #include <iostream> #include<locale> using namespace std; ...

3
308 / 271 / 220
Регистрация: 14.11.2016
Сообщений: 1,049
29.05.2017, 09:05 2
C
1
#define     YourFunction(x)     x
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#define    YourFunction(x)    x##Function()
#define    YourFunctionTwo(x)    ThreeFunction(x)
int OneFunction(void)
{
  ...
}
 
void TwoFunction(void)
{
  ...
}
 
float ThreeFunction(int a)
{
  ...
}
 
int main(void)
{
  int abc = 5;
  YourFunction(One); // OneFunction();
  YourFunction(Two); // TwoFunction();
  YourFunctionTwo(abc); // ThreeFunction(abc);
  return 0;
}
0
2 / 2 / 2
Регистрация: 27.02.2016
Сообщений: 243
29.05.2017, 16:31  [ТС] 3
Я не понял. Данная конструкция также вызывает функцию и пишет в стек адрес предыдущей команды (перед вызовом функции)?
0
308 / 271 / 220
Регистрация: 14.11.2016
Сообщений: 1,049
29.05.2017, 16:46 4
Alex_Golubev, #define при вызове указанного идентификатора, он замещается указанной строкой (командой).
## означает склейку.
Когда мы пишем идентификатор YourFunction(One); он замещается на OneFunction();
Ферштейн?
0
29.05.2017, 16:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2017, 16:46
Помогаю со студенческими работами здесь

Как правильно создать class (и загрузить в него 1 функцию)?
Допустим у меня есть несколько одинаковых действий, которые может выполнять программа: ...

Как создать функцию ввода элементов массива используя шаблоны?
Извините, по глупому вопросу, но на данный момент я не смог сообразить сам. Как создать функцию...

Как правильно создать несколько потоков, вызывающий одну и ту же функцию?
Пробовал так: ... #include "process.h" ... __fastcall TForm1::TForm1(TComponent* Owner) :...

Как правильно создать шаблон на функцию, которая использует вектор?
есть вот такая шаблонная функция, template <typename T> void rev(const std::vector <T>...

Как можно запустить прогу, не используя функцию Shell, а используя API функцию?
Привет Всем! Подскажите, как можно запустить прогу, не используя функцию Shell, а используя API...

Используя функцию RANDOM, запишите правильно операторы
Используя оператор RANDOM запишите правильно команды: a) Элемент массива А с номером 7 находится в...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru