ich weiß nicht, ob es möglich ist, aber der Wikipedia-Artikel hier Compatibility of C and C++ sagt der folgende:Fangen Variablen ohne Argumente Funktion übergeben
In C eine Funktionsprototyp ohne Argumente, z.B.
int foo();
, bedeutet, dass die Parameter nicht angegeben sind. Daher ist es zulässig, eine solche Funktion mit einem oder mehreren Argumenten, z.foo(42, "hello world")
.Im Gegensatz dazu bedeutet ein Funktionsprototyp ohne Argumente in C++, dass die Funktion keine Argumente annimmt, und das Aufrufen einer solchen -Funktion mit Argumenten fehlerhaft ist.
In C wird die richtige Art und Weise zu erklären eine Funktion, die keine Argumente annimmt durch
void
verwendet, ist, wie inint foo(void);
.
Ich habe den folgenden Code zu testen und die übergebenen Variablen zu fangen (was nicht ganz richtig funktioniert)
#include<stdio.h>
#include<stdarg.h>
void foo();
int main()
{
int i = 3;
foo(i);
return 0;
}
void foo()
{
// va_list args;
// va_start(args);
//
// int x = va_arg (args, int);
// printf("%d", x);
// va_end(args);
}
Ist es möglich, die übergebene i
oder Wikipedia über etwas zu reden zu fangen vollständig anders?
Danke! Ich denke, das ist, was ich gesucht habe. –