Hat jemand so etwas versucht?Wie man den Wert in einem char [] oder einer Zeichenkette im Programm selbst drucken
Ist es möglich, den Wert einer Zeichenkette oder Ganzzahl auf dem Programm selbst zu drucken? Sagen Sie zum Beispiel - Ich habe 2 Tests für ein Programm geschrieben Ich versuche, alle Testfunktionen aufzurufen, indem ich in einer for-Schleife umschlinge.
Eine kleine Probe Beispiel
#define MAX_TESTS 10
for(test_idx = 0; test_idx<MAX_TESTS; ++test_idx)
{
test_##test_idx();
//Here the output will be more like "test_test_idx();"
//But I am looking for something like
//"test_0();"
//"test_1();"
//"test_2();"
.
.
.
//"test_9();"
}
Gibt es eine Möglichkeit, es in C zu tun?
komplettes Programm
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//Macros
#define MAX_TEST 2
#define _MYCAT(a,b) a##b()
void test_0()
{
printf("Test 0\n");
}
void test_1()
{
printf("Test 1 \n");
}
int main()
{
printf("Max Product Testing \n");
for (int test_idx=0; test_idx<MAX_TEST; ++test_idx)
{
/* Try - 1
char buffer[50];
int n = sprintf(buffer, "test_%d", test_idx);
printf("%s %d \n", buffer, n);
*/
//Try - 2
//_MYCAT(test_, test_idx);
}
return 0;
}
Namen von Funktionen im laufenden Betrieb nicht zur Verfügung stehen, außer für Debug-Informationen. 'for'-Schleife ist im Präprozessor nicht verfügbar. Dann ... wie wäre es mit einem Array, das Zeiger auf Funktionen enthält und es benutzt? – MikeCAT
"für (int test_idx = 0; test_idx
Mirakurun
@Mirakurun Wie hängt das mit dem zusammen, was das OP will? – ameyCU