Messages in this thread | | | Date | Tue, 8 Nov 2005 17:23:27 -0600 | Subject | Re: typedefs and structs | From | linas <> |
| |
On Mon, Nov 07, 2005 at 08:11:13PM -0500, Steven Rostedt was heard to remark: > On Mon, 2005-11-07 at 14:41 -0600, linas wrote: > > don't use typedef to get rid of "struct". > > This was for the simple reason, too many developers were passing > structures by value instead of by reference, just because they were > using a type that they didn't realize was a structure.
That's a rather bizarre mistake to make, since, in order to access a values in such a beast, you have to use a dot . instead of an arrow -> and so it hits ou in the face that you passed a value instead of a reference.
---- Off-topic: There's actually a neat little trick in C++ that can help avoid accidentally passing null pointers. One can declare function declarations as:
int func (sturct blah &v) { v.a ++; return v.b; }
The ampersand says "pass argument by reference (so as to get arg passing efficiency) but force coder to write code as if they were passing by value" As a result, it gets difficult to pass null pointers (for reasons similar to the difficulty of passing null pointers in Java (and yes, I loathe Java, sorry to subject you to that)) Anyway, that's a C++ trick only; I wish it was in C so I could experiment more and find out if I like it or hate it.
--linas - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |