次のプログラムでは、構造体を関数に渡そうとしています。しかし、エラーが発生し、その理由がわかりません。このプログラムで私が犯した間違いは何ですか?
このプログラム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++