Вызов функции, названной в строковой переменной в C - PullRequest
50 голосов
/ 13 июля 2009

Я хочу вызвать функцию, используя переменную. Это возможно в C?

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

Я хочу разработать игровой движок ИИ для двух игроков. В движок игры будут загружены две программы без основной функции, которые реализуют логику для победы в игре. Позвольте мне прояснить, что имена программ будут такими же, как и у простых функций в программе, которые реализуют логику для победы в игре.

Поэтому, когда пользователь вводит имя первого и второго игроков, я могу сохранить их в 2 разных переменных. Теперь, поскольку имена простых функций совпадают с именами имен программ, я намерен вызывать функции с переменными, содержащими имена прог.

Ответы [ 12 ]

0 голосов
/ 30 сентября 2017

Представляем функцию Nginx-c. Это модуль NGINX, который позволяет связать ваше приложение .so (c / c ++) в контексте сервера и вызвать функцию приложения .so в директиве location Вы можете реализовать кэш данных общей памяти nginx через функцию nginx c (https://github.com/Taymindis/nginx-c-function/wiki/Nginx-Cache-Data-via-nginx-c-function). Это для разработчиков, которые любят хостинг c сервером. https://github.com/Taymindis/nginx-c-function

enter image description here

0 голосов
/ 13 июля 2009
Массивы

C могут индексироваться только с целыми типами. Поэтому напишите строки отображения хеш-таблицы в указатели на функции.

Может также стоить взглянуть на средство в Python, Lua, других языках сценариев для встраивания их времени выполнения в программу на C: части кода C можно затем манипулировать языком сценариев.

Впрочем, некоторые люди кодируют расширения языка сценариев на C. Тогда они могут иметь скорость и низкоуровневый доступ к C в своих сценариях.

Рано или поздно вы обнаружите, что использование динамически типизированных идиом языка сценариев, таких как eval (), и размытая линия между функцией и именем функции и кодом, который зависит от ассоциированных массивов, в C возможны, но в конечном итоге болезненный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...