That error means you're trying to use a function whose prototype the compiler doesn't recognize, so it assumes you're returning an integer. Since you are returning an int, you can /technically/ get away without #including or writing the prototype if you have dire speed or size requirements, but it's not recommended if you can possibly avoid it. Meaning 99.999999% of the time, just #include.
To give you an example,
-
int main(int argc, char** argv){
-
int a = atoi(argv[1]);
-
return 0;
-
}
-
This gives the same warning because <cstdio> has not been #included, so the compiler doesn't recognize it, but it can generate calling code anyway since it assumes an integer return type. Luckily, atoi() returns an int, so you can get away with this, but you really shouldn't try. Like ever.