|
Ok -you're right !
I'm just another 'old-fashioned' programmer, who start ist's life with BASIC (Sharp PC1211), learned PL/1 and FORTRAN at university, followed by FORTH at Sharp PC 1512, proceeded to ASM Z80 while adapting my own built Z80 computer system to CP/M, then switched to C.
But in those old days memory was a real issue - a Z80 can only access 64 KB of memory, and this with memory mapped display space ...
Today memory isn't a real issue anymore, and processing speed doesn't (really) matter, too - my original Z80-system was by far the fastest system possible, built purely with 8 MHz-parts (1983). This was by far more than the original IBM PC speed (not to mention the ability of vectored interrupts etc.)
So, today, we as developers, should say 'don't bother' to performance issues ????
Just an example:
i < count in pseudo-assempler means i-count; if (sign_flag==-1) THEN ...
i a<= count means i-count; if (sign_flag==-1 OR zero_flag==TRUE) THEN ...
As you can see, the latter is less optimal, even if we talk about nanoseconds, but in summarize it can be a real difference in performance.
And: I Like PURE C - *I* can allocate memory, when I need it, and *I* decide, when to release it !!!
Of course, one have to be very careful about it, but - correct used - it gave you the most control, and the most power !
Another question is: WHO needs more 'abstraction level' ?
If I have a well done codebase fore the basic tasks (i.e. wrappers to WIN API and other basics) then I can do my buisiness layer even in pure C (or C++) as well ...
|
|
|
|
|
Bacon or CListCtrl are involved: it should obviously not be possible to have
Bacon[0] or
CListCtrl[0] As that would imply that we have run out...
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
Bacon[AsMuchAsPossible] ????
I'm not heavy - I'm KIDNAP RESISTANT... ----- Don't tell my folks I'm a computer programmer - They think I'm a piano player in a cat house... ----- Da mihi sis crustum Etruscum cum omnibus in eo! ----- Everybody is ignorant, only on different subjects - Will Rogers, September 7, 1924
|
|
|
|
|
Bacon[int64.MaxValue]
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
OriginalGriff wrote: Bacon[int64.MaxValue]
You have no ambitions, I'm sure you get more.
BTW is that bacon by weight [kilos? ] or slices?
Panic, Chaos, Destruction.
My work here is done.
or "Drink. Get drunk. Fall over." - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
|
|
|
|
|
I always count my bacon by the Buttie.
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
...because it makes loops work more obviously:
for (int index = 0; index < array.Length; index++) Rather than
for (int index = 1; index < array.Length + 1; index++)
(by the way, I'm a C# developer which never uses unsafe pointers and things like that).
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
So don't do that - use foreach instead... Then it doesn't matter anyhow.
I'm not heavy - I'm KIDNAP RESISTANT... ----- Don't tell my folks I'm a computer programmer - They think I'm a piano player in a cat house... ----- Da mihi sis crustum Etruscum cum omnibus in eo! ----- Everybody is ignorant, only on different subjects - Will Rogers, September 7, 1924
|
|
|
|
|
Not always possible: what if you are removing all entries with "XXX" in the name? You can't use a foreach where the IEnumerable changes...
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
|
What about this?
for (int index = 1; index <= array.Length; index++)
That's what I used to do in BASIC (of course the syntax was different)
BTW I voted for 0. Habit.
modified on Monday, March 7, 2011 9:46 AM
|
|
|
|
|
If you did that you'd fall off the end of the array - you need:
for (int index = 1; index <= array.Length; index++)
|
|
|
|
|
Copy & paste mistake. Fixed, thanks
|
|
|
|
|
for (int index = 1; index <= array.Length; index++)
Ya i am agree this is the right way.........
|
|
|
|
|
You misunderstand. There is no right way, I only pointed out a different method
|
|
|
|
|
Mathematically,
for (int index = 1; index <= array.Length; index++) would be the right way to say it and count it.
It's been drilled into programmer's heads that 0 is better than 1 that it has become a religious offense to state otherwise.
|
|
|
|
|
|
We're all someone's infidel. Death to all, and to all a good night.
|
|
|
|
|
And double death to all who can't use a spell-checker!
------------------<;,><-------------------
|
|
|
|
|
OriginalGriff wrote: it makes loops work more obviously:
for (int index = 0; index < array.Length; index++)
A really obvious way would be something like:
for i in (1, array.Length]
|
|
|
|
|
To be fair, you could write
for (int index = 1; index <= array.Length; index++)
(but I prefer 0-based arrays too)
Regards
Thomas
Disclaimer: Because of heavy processing requirements, we are currently using some of your unused brain capacity for backup processing. Please ignore any hallucinations, voices or unusual dreams you may experience. Please avoid concentration-intensive tasks until further notice. Thank you.
|
|
|
|
|
...because it represents a higher abstraction semantic (first item) rather than an implementation technicality (address offset).
This is what I spect from a programming language not close to the machine.
(by the way, I'm a C# developer which never uses unsafe pointers and things like that).
Wake up! The Singularity is coming.
|
|
|
|
|
nmarcel wrote: because it represents a higher abstraction semantic (first item) rather than an implementation technicality (address offset).
Absolutely agreed.
It should be start with 1.
Regards.
|
|
|
|
|
0 or 1 are BOTH implementation technicalities . Convention in this respect is more important .
|
|
|
|