> -----Original Message----- > From: Barry Smith > Sent: Wednesday, August 17, 2011 1:09 PM > To: For users of the development version of PETSc > Subject: Re: [petsc-dev] declaring argument as const basic type in PETSc > > So by the standard a compiler should never bitch if in the function > definition it is declared const > but in the extern prototype it is not declared const? (This is an exception > to the usual rule that the > extern arguments should match the definition arguments?)
I wouldn't know about the standard but the two compilers that I have access to (an old gcc and an old visual studio) produce the same mangled symbol in C++ and the same unmangled symbol in C for the two kinds of functions (with and without const). The visual studio C compiler warns "warning C4028: formal parameter 1 different from declaration", but it is a warning only and can be avoided by putting const int in declaration as well. So at least these two don't care. Since they produce the same symbol, internally they are aware of what's going on. Chetan
