1 Pluspunkt 0 Minuspunkte

Kann ich in C eine Funktion aus einem String erstellen? 

char *str = "Hello world"; 
char *f = "printf"; 
f("%s", str);
von  

1 Antwort

1 Pluspunkt 0 Minuspunkte

C ist eine statisch typisierte Sprache, was bedeutet, dass Funktionen und ihr Verhalten zur Kompilierzeit bekannt sein müssen. Wenn du dynamisches Verhalten in C erreichen möchtest, könntest du Funktionzeiger (Function Pointers) in Betracht ziehen. Ein Funktionzeiger ist eine Variable, die auf die Adresse einer Funktion zeigt.

#include <stdio.h>

void a(const char *text) 
{
    printf("a Funktion: %s\n", text);
}

void b(const char *text) 
{
    printf("b Funktion: %s\n", text);
}

int main() 
{

    char *str = "Hallo Welt";
    void (*f)(const char *);
    
    f = a;
    
    f(str);
    
    f = b;
    
    f(str);
    
    return 0;

}
von