[?] typedef/struct c/c++
От: XuTMAH  
Дата: 12.02.09 21:08
Оценка:
Структура должна иметь следующий вид

struct A
{
    A* next;
};


И должна компилироваться на всех Си и Си++ компиляторах.

Смог придумать только 3 варианта как это сделать:

typedef struct A1 A1;
struct A1
{
    A1* next;
};

struct A2
{
    struct A2* next;
};

typedef struct _A3
{
    struct _A3* next;
} A3;

void TestA1( A1* obj ) {}

void TestA2( struct A2* obj ) {}

void TestA3( A3* obj ) {}


Проблема второго варианта: нужно писать слово struct при использовании структуры.
Проблема третьего варианта: член структуры имеет тип который не используется (_A3) и только вносит путаницу при большом числе членов класса.
Первый же вариант лишён этих проблем.

Остаётся вопрос на всех ли Вам известных компиляторах Си и Си++ компилируется приведённый код?
В особенности интересует первый вариант. И если он так удобен, то почему им мало кто пользуется?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.