2013/11/13 Sven Barth <pascaldra...@googlemail.com> > Am 13.11.2013 11:07, schrieb Frederic Da Vitoria: > > 2013/11/13 Rainer Stratmann <rainerstratm...@t-online.de> > >> On Wednesday 13 November 2013 10:52:23 you wrote: >> > 2013/11/13 Rainer Stratmann <rainerstratm...@t-online.de> >> > > Is there a description of the behaviour of const and var in this case? >> > > Why is it not both const or both var? >> > >> > "source" is where the data "comes from", so the procedure won't modify >> it >> > (if there is no memory overlap between source and dest), so it is >> declared >> > as "const" >> > "dest" is where the data is copied to, so the procedure will necessarily >> > modify it (if "count" is <> 0), and the procedure should modify so it is >> > declared as "var". Actually, IMO it could be declared as "out", this >> would >> > avoid a meaningless warning. >> >> But why does it work without specifying the vars more exactly like in >> other >> cases? >> > > You mean, how can it work without using typed variables? In Pascal, you > don't have to give the type of a parameter, although 99.99% of the times > you should do it. If you don't do it, you could as well use assembly :-) > Actually, that's probably how Move is written: in assembly language. Of > course, since the types were not given in the parameter declaration of > Move, the compiler can't know the size of the data, and you have to give > the compiler some indication. That's what "count" is for. Move considers > the memory as 2 big arrays of bytes, one starting at "source", and the > second at "dest". > > The fallback implementation (for new architectures) is written in Pascal. > See $fpcdir\rtl\inc\generic.inc. >
Of course it is, I should have guessed it, Lazarus/FPC is multi-platform. I keep thinking as if I was using a Windows-only development tool. -- Frederic Da Vitoria (davitof) Membre de l'April - « promouvoir et défendre le logiciel libre » - http://www.april.org
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal