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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
remix.remix
Сообщений: n/a
#1

Встраивание результата функции в место ее вызова - C++

04.09.2012, 01:01. Просмотров 1012. Ответов 24
Метки нет (Все метки)

Здравствуйте. Можно ли как-то реализовать чтобы перед компиляцией программы выполнолась функция, а ее результат встраивался в место ее вызова? Знаю что для фунций есть классификатор inline, но тогда в место вызова встраивается сама функция, а мне нужен именно результат. Например:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void func(int i)
{
if(i==1)
n = 1;
else
n = 0;
}
 
int main(void)
{
int i = 1;
func(i);
}
И вот нужно, чтобы при компиляции вместо "func(i);" стояло "n = 1;".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2012, 01:01     Встраивание результата функции в место ее вызова
Посмотрите здесь:

Вызова функции - C++
Как сделать, что бы MAIN предназначался только для вызова функции(+нельзя использовать глобальные перемменные) Код:Список фамилий...

Абстракция вызова функции - C++
Итак я хотел бы обсудить с участниками форума такую задачу. Но перед тем как перейти к сути - замечу, что вопросы морально-этического...

Ошибка вызова шаблонной функции - C++
Вообщем у меня вопрос такой: Использую MVS 2010. Пишу шаблон функции для поиска максимального из двух чисел: template <class T> T...

Ошибка вызова шаблонной функции - C++ - C++
Читаю Прата, остановился на таком задании: Напишите функцию с интерфейсом в старом стиле, которая имеет следующий прототип: int...

Функции. Синтаксис объявления и вызова - C++
1. Написать функцию, которая вычисляет Вариант Задание 1 площадь круга S по его радиусу R (S=R2) 2 площадь треугольника S по...

Не понятный глюк вызова перегруженной функции - C++
void f (std::wfstream&, bool, const char*, size_t , size_t); void f (std::wfstream&, int, const char*, size_t , size_t); void f ...

Стрелка в описании функции обратного вызова - C++
#include <iostream> #include <algorithm> std::string s = "hello"; auto end = std::unique(s.begin(), s.end(), (char a, char b) -> bool...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
04.09.2012, 18:56     Встраивание результата функции в место ее вызова #21
Invader_Zim, Он состоит не из #define салата, а из #ifdef салата, что является несколько разными вещами, не находите? А #define-ы определяются во время сборки программы, обычно в одном config файле.
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
04.09.2012, 18:56     Встраивание результата функции в место ее вызова #22
Цитата Сообщение от Invader_Zim Посмотреть сообщение
И я не буду отказываться от дефайнов! Ибо чуть менее чем весть кроссплатформенный код состоит из дефайн-салата
логично. если отказываться в с++ от всего, что есть также в си, то от него ничего не останется вообще. ну, шаблоны разве.
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
04.09.2012, 18:58     Встраивание результата функции в место ее вызова #23
ForEveR, мда, holy war runtime error: Invalid argument
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
04.09.2012, 19:03     Встраивание результата функции в место ее вызова #24
Invader_Zim, Ну я же вроде не говорил, что макросы не используются вообще, я говорил что их по возможности стараются избегать. Выборочная компиляция, как раз является областью, где без макросов - никак.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.09.2012, 19:43     Встраивание результата функции в место ее вызова
Еще ссылки по теме:

Макрос вызова функции без скобок - C++
Вообщем хочется получить что-то вроде этого: #include <iostream> using namespace std; #define For ....... int main() { ...

Указатель для вызова виртуальной функции - C++
Помогите разобраться в строении вызова виртуальной функции Если не сложно, объсните каждый указатель #include <iostream> ...

Упрощение вызова функции через #define - C++
Есть функция вида func(char*,int,int) Можно ли через define сделать, что бы в коде написать "D15=1", а при сборке подставилось ...

Список переменных указанный в операторе вызова функции - C++
Список переменных указанный в операторе вызова функции- это

Как вывести номер строки вызова функции - C++
Здравствуйте! Подскажите, пожалуйста, как командой OutputDebugStringA((LPCSTR)__LINE__) вывести номер строки откуда вызывается функция ...


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

Или воспользуйтесь поиском по форуму:
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
04.09.2012, 19:43     Встраивание результата функции в место ее вызова #25
ForEveR, Я знаю, я в пылу убеждения в своей правоте дерективы перепутал. Вот и инфалид агрумент)
Yandex
Объявления
04.09.2012, 19:43     Встраивание результата функции в место ее вызова
Ответ Создать тему
Опции темы

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