Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
9 years, 2 months ago.
return multiple values from a function
Hi,
I'm trying to write a function which would return more than one value. I have two examples that work - ether by defining the function type by a struct or by passing the parameters as pointers.
Now when I put the function definitions into a class in .h and .cpp files I get compilation errors.
Here is the code of the testing example. Any ideas what's wrong? Thank you Juerg
main:
- include "mbed.h"
- include "helper.h"
int main() { Bar dunno = funct();
printf("reading: %d %d\r\n", dunno.x,dunno.y);
int x,y; funct2(&x, &y); printf("reading: %d %d\r\n", x,y); return 0; }
header file:
- include <mbed.h>
class helper { public: struct Bar; struct Bar funct(); void funct2(int *x, int *y); };
cpp file:
- include <mbed.h>
- include "helper.h"
struct Bar{ int x; int y; };
Bar funct(){ struct Bar result; result.x = 10; result.y = 20; return result; }
void funct2(int *x, int *y){ /* dereferencing and setting */
- x = 1;
- y = 2; }
1 Answer
9 years, 2 months ago.
As erik said, please use <<code>> and <</code>>
to make things readable.
One obvious issue, when defining members of a class you need to indicate that they are members of a class. In your helper.cpp file you need to put the class name in front of the function names.
Bar helper::funct(){ struct Bar result; result.x = 10; result.y = 20; return result; } void helper::funct2(int *x, int *y){ /* dereferencing and setting */ *x = 1; *y = 2; }
Please use
posted by Erik - 23 Oct 2015<<code>> and <</code>>
around your code, now it is very hard to read. Also which compilations errors do you get?Sorry, didn't know. So here the code once again:
and these are the errors in main. No errors indicated in helper files.
Error: Identifier "Bar" is undefined in "main.cpp", Line: 8, Col: 6 Error: Expected a ";" in "main.cpp", Line: 8, Col: 10 Error: Identifier "dunno" is undefined in "main.cpp", Line: 10, Col: 37 Error: Identifier "funct2" is undefined in "main.cpp", Line: 12, Col: 6
posted by juerg hofer 26 Oct 2015