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

Передача типа указателя на функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Компиляция exe http://www.cyberforum.ru/cpp/thread912176.html
Как скомпилировать .exe чтобы он работал на других машинах, писал с использованием OpenGL от этого проблемы при работе с другими машинами подскажите пожалуйста:wall:
C++ екзешный файл. нужно исправить и перепаковать описываю проблему. есть exe файл (тест для проверки знаний), слышал что с ним можно что-то сделать чтобы были отмечены правильные ответы, или правильный ответ был всегда на первом месте. вопрос... http://www.cyberforum.ru/cpp/thread911678.html
C++ RAD Studio XE3 C++
Здравствуйте! Можете, пожалуйста, подкинуть уроки, сайты для изучения этой среды программирования?
C++ Создание dll библиотеки без добавления в решение
Доброго времени суток. Я сделал библиотеку dll строго по http://msdn.microsoft.com/ru-ru/library/vstudio/ms235636(v=vs.100).aspx Всё было нормально и работало. Но там есть пункт "В раскрывающемся...
C++ Настройка eclipse c++ http://www.cyberforum.ru/cpp/thread907069.html
Вот уже не первый день не могу настроить Eclipse C++ на windows 7. Делал все как описано тут и не только. Пытаюсь скомпилировать #include <iostream> void main() { cout << "Hello World!\n";...
C++ Хеш-таблица (контрольная работа) Привет! Не думал, что обращусь за помощью, но похоже я переоценил свои возможности. Суть - у меня сейчас сессия (учусь заочно) и я, как обычно, подумал что успею сделать все контрольные за семестр... подробнее

Показать сообщение отдельно
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
30.06.2013, 17:06
Вот что придумал на базе кода из первого поста:
вводим дополнительную сущность
C++
1
2
3
4
union fptr
{
    int (*ptr)(int);
};
внтури my_super_puper_function()
C++
1
int (*f)(int x) = va_arg(arglist, fptr).ptr;
итого весь код
Кликните здесь для просмотра всего текста
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
26
27
28
29
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
 
int my_super_function(int x)
{
    return 2 * x;
}
 
union fptr
{
    int (*ptr)(int);
};
 
void my_super_puper_function(const char *format, ...)
{
    va_list arglist;
    va_start(arglist, format);
    int (*f)(int x) = va_arg(arglist, fptr).ptr;
    printf("%i\n", f(2));
    va_end(arglist);
}
 
int main(int argc, char* argv[])
{
    my_super_puper_function("%p", my_super_function);
    system("pause");
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru