|
From: | Gerd Hoffmann |
Subject: | Re: [Qemu-devel] Coding style, C++ compatible code (was Re: [Qemu-devel] [PATCH 02/22] eepro100: cast a void * makes no sense) |
Date: | Wed, 26 Aug 2009 16:49:05 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1b3pre) Gecko/20090513 Fedora/3.0-2.3.beta2.fc11 Lightning/1.0pre Thunderbird/3.0b2 |
Hi,
Why don't we declare structures like this: typedef struct { ... } T;? I suggest this to be the new coding style for structure declarations because it is shorter, C++ compatible and unambiguous.
There are quite a few cases where this will simply not work. They usually use a slightly different declaration style though:
typedef struct T T; struct T { /* stuff here */ }; Reasons why this is used/needed: (1) structs pointing to each other, like this: typedef struct A A; typedef struct B B; struct A { B *b; }; struct B { A *a; }; (2) keep the struct private, let others pass around pointers to the struct in a typesafe way though: header file: typedef struct T T; T* get_foo(args); int do_something_with_foo(T*); source file: struct T { /* stuff here */ }; cheers, Gerd
[Prev in Thread] | Current Thread | [Next in Thread] |