0
Why doesn't string main() works as char main() and int main() do?
I was replacing int main() with char main() to see how the code will look like: #include <stdio.h> int main() { printf("Hello, World!\n"); 5 return 0; } *********** #include <stdio.h> char main() { printf("Hello, World!\n"); return 0; } They both gives the same output except if I run it with string: #include <stdio.h> string main() { printf("Hello, World!\n"); return 0; } Why is that?
2 Réponses
+ 3
The proper signature for main is actually
int main()
int main(int argc, char *argv[]) // to take arguments during launch
when you do
char main()
the compiler detects that main returns char but allows it, because the returned character is interpreted as its integer ASCII counterpart.
http://www.asciitable.com/
std::string, however, cannot be implicitly converted to int without casting.
string main() {
return 0;
}
makes no sense, since you are declaring that main returns string but you are returning a numerical value instead of a string.