Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!mcsun!ukc!stl!dsr From: dsr@stl.stc.co.uk (D.S.Riches) Newsgroups: comp.lang.c Subject: Re: strings as functions Message-ID: <3905@stl.stc.co.uk> Date: 9 Jan 91 09:15:19 GMT References: <1991Jan7.165639.10403@zoo.toronto.edu> Sender: news@stl.stc.co.uk Reply-To: "D.S.Riches" Organization: STC Technology Limited, London Road, Harlow, Essex, UK Lines: 58 >In article mpapp@ (Mike Papper) writes: >Is there a way to use a string value as the name of a function? >In other words, can I use a string (possibly >typed in by a programmer) as a function call to a function of >the same name? Tried to reply to you Mike but your path name is corrupted. See your Newsmaster about it. It seems similar to the implementation of a State Transition Model or Table Driven Software. E.g. We define a structure :- typedef struct sy_s_bed_add_nw_object { gen_t_nw_object nw_object; STRING form_name; INT (*func_name)(); INT aux_row; } sy_s_bed_add_nw_object; Declare a table for it :- NE_D_EXTERN sy_s_bed_add_nw_object sy_g_bed_add_table[] #ifdef DEFINITION = { GEN_D_SITE, "adsite", sy_f_bed_Add_Geog_Object, 0, GEN_D_BLDG, "adbldg", sy_f_bed_Add_Geog_Object, 2, GEN_D_LINK, "adlink", sy_f_bed_Add_Tx_Object, 3, GEN_D_LINK_PT, "undefined", dummy, -1, GEN_D_NODE, "adnode", sy_f_bed_Add_Default_Object, 4, } #endif In this case the structure defines a pointer to a function as the 3rd element. In the table we have a name of a function. We then call that function by :- status = (*(sy_g_bed_add_table[i_object_type].func_name))(m_cfmPtr); Where i_object_type is the 'line_number' corresponding to the nw_object we're interested in (in State Transitions this would be the trigger, we search down a table for the trigger. move across to the action (funtion) to be called and execute it). m_cfmPtr is the parameter to this function. This is taken from a 'live' example, what you might need is similar in that you could assign a string to the 3rd element and then execute it ... I think. Dave Riches PSS: David.S.Riches@stl.stc.co.uk (or dsr@stl.stc.co.uk) Smail: Systems Methods, (Dept. 607, T2 West), STC Technology Ltd., London Road, Harlow, Essex. CM17 9NA. England Phone: +44 (0)279-29531 x2496