Meaning of 'void' doesn't return a value

Not much guidance at all in Arduino on this subject. I was trying to find the equivalent of BASIC 'gosub' statement. Here is how I finally did it.
In the main program; double t=read_sensors();
Outside the main program; double read_sensors(){ in here is my program to read a sensor. At the end of the program still in the curvy brackets; return t;}
If you substitute anything but read_sensors() here you get a compiler error 'not defined'.
I only found read_sensors() by accident on the internet. There is nothing about this instruction in 'help' in Arduino. It would certainly help users if Arduino could include in their help column how to use subroutines. I have to read a sensor regularly in my program and you don't want to have to repeat this over and over in your main program. You would be using a lot of program space.