Hello,
I have a question about passing parameters to a C function. Imagine the example by PostgreSQL: PG_FUNCTION_INFO_V1(complex_add); Datum complex_add(PG_FUNCTION_ARGS) { Complex *a = (Complex *) PG_GETARG_POINTER(0); Complex *b = (Complex *) PG_GETARG_POINTER(1); Complex *result; result = (Complex *) palloc(sizeof(Complex)); result->x = a->x + b->x; result->y = a->y + b->y; PG_RETURN_POINTER(result); } So, in the same .C file I have to write another function that calls this one, for example: void test_main() { Complex *a; Complex *b; a = complex_in("(4.01, 3.77 )"); printf("a = %s\n", complex_out(a)); b = complex_in("(1.0,2.0)"); printf("b = %s\n", complex_out(b)); printf("a + b = %s\n", complex_out(complex_add(a,b))); } But using version 1 calling convention it won't work! So, how can I pass the 'a' and 'b' variables in complex_add(?, ?)? Thanks in advance!