2013-10-15 2 views
0

я сделать мой вопрос коротко и просто:Петля для имен функций

У меня есть ряд функций, называемых f1, f2, f3 и т.д., и теперь я хочу, чтобы петли через них, а не вводить их один за другим. Есть ли способ сделать это? Это практика программирования c.

+1

Сделали вы единственный попробовать написать код для этого? Сделали ли вы какие-либо исследования. Если да, напишите свой код. иначе это не место для этого вопроса. – Gangadhar

ответ

2

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

Однако вы можете использовать указатели функций для этого.

#include <stdio.h> 

int f1() 
{ 
    printf("f1() \n"); 
    return 0; 
} 

int f2() 
{ 
    printf("f2() \n"); 
    return 0; 
} 

int f3() 
{ 
    printf("f3() \n"); 
    return 0; 
} 

int main(int argc, char *argv[]) 
{ 
    int (*p[3])() = { 
     f1, 
     f2, 
     f3 
    }; 

    for (int i=0; i<3; i++) { 
     (*p[i])(); 
    } 

    return 0; 
} 
+0

Это полезно, но имена функций даются в другом c-файле, поэтому я не могу переопределить их. – user1773037

+1

Вы всегда можете включить этот файл. Вам не нужно переопределять их. – Sorter

+0

Вы не переопределяете их, просто указывая на них по адресу. –

Смежные вопросы