>>488
こうするとダメでした。
$ cat test.h
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
typedef struct { float v[4]; } data_t;
data_t getData(int a, int b, int c);
#ifdef __cplusplus
}
#endif
$ cat test.cpp
#include "test.h"
data_t getData(int a, int b, int c) {
data_t d;
d.v[0] = (float)a;
d.v[1] = (float)b;
d.v[2] = (float)c;
d.v[3] = (float)0;
return d;
}
$ cat use.cpp
#include <stdio.h>
#include "test.h"
int main() {
data_t d = getData(1, 2, 3);
printf("d.a=%f d.b=%f\n", d.v[0], d.v[1]);
return 0;
}