В следующей программе я пытаюсь передать структуру функции. Но я получаю ошибки, и я не понимаю, почему. Какую ошибку я совершил в этой программе?
Я использую gcc
для компиляции этой программы c
.
#include <stdio.h>
struct tester {
int x;
int *ptr;
};
void function(tester t);
int main() {
tester t;
t.x = 10;
t.ptr = & t.x;
function(t);
}
void function(tester t) {
printf("%d\n%p\n",t.x,t.ptr);
}
Ошибки:
gcc tester.c -o tester
tester.c:8:15: error: unknown type name ‘tester’
tester.c: In function ‘main’:
tester.c:12:2: error: unknown type name ‘tester’
tester.c:13:3: error: request for member ‘x’ in something not a structure or union
tester.c:14:3: error: request for member ‘ptr’ in something not a structure or union
tester.c:14:13: error: request for member ‘x’ in something not a structure or union
tester.c: At top level:
tester.c:18:15: error: unknown type name ‘tester’
ПРИМЕЧАНИЕ: Если я заменил printf
на cout
и stdio
на iostream
и назовет расширение до .cpp
(!), я не получаю ошибок. Почему это? Неудивительно, что я скомпилирую его с помощью g++