I could compile the void main() as c++ source file with microsoft c/c++ compiler 14.00 (integrated with visual studio 2005).So does it means that the compiler does not conform to the c++ standard on the main function prototype?
Is the microsoft c/c++ compiler only one compiler,that is,it is only one c++ compiler?Because C source file could be compiled as C++ source file,so its no need to develop the c compiler anymore?
thanks.
views:
265answers:
1
+5
A:
I could compile the
void main()
The valid signatures of main are:
int main(void); // no parameters
int main(int, char **); // parameterized
Everything else is not standard. The standard does allow an implementation to allow alternate signatures of main()
.
Is the microsoft c/c++ compiler only one compiler,that is,it is only one c++ compiler?
Yes, it is one executable (cl.exe
). However, it can work either as a C compiler or a C++ compiler. The default is C++ compiler mode. You can change this by going into Project Properties > C/C++ > Advanced (/TP
or /TC
)
dirkgently
2009-12-17 05:08:50
It also infers a default from the file extension (.c or .cpp/.cxx)
Alex
2009-12-17 05:10:17