Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Alex_Golubev
0 / 0 / 1
Регистрация: 27.02.2016
Сообщений: 25
1

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

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

Привет.
Как правильно сделать функцию вида float function(float i){ return (i);} через макрос?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2017, 07:23
Ответы с готовыми решениями:

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

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

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

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

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

3
anapshy
249 / 231 / 196
Регистрация: 14.11.2016
Сообщений: 873
Завершенные тесты: 3
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
Alex_Golubev
0 / 0 / 1
Регистрация: 27.02.2016
Сообщений: 25
29.05.2017, 16:31  [ТС] 3
Я не понял. Данная конструкция также вызывает функцию и пишет в стек адрес предыдущей команды (перед вызовом функции)?
0
anapshy
249 / 231 / 196
Регистрация: 14.11.2016
Сообщений: 873
Завершенные тесты: 3
29.05.2017, 16:46 4
Alex_Golubev, #define при вызове указанного идентификатора, он замещается указанной строкой (командой).
## означает склейку.
Когда мы пишем идентификатор YourFunction(One); он замещается на OneFunction();
Ферштейн?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2017, 16:46

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

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

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


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

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

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