LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

Я уже выше написал про процедурные макросы и всё будет автоматизированно, корректно, быстро и безопасно.

Есть пример такого макроса? Я думаю что он выйдет намного длиннее чем макрос на С. И непонятно почему ты его описываешь как «быстро» (=производительно?) и «безопасно», по сравнению с чем?

Предлагаю написать вот это на Rust, с этими твоими макросами, и можно будет быстро сравнить.

#define X_POINT \
  X(int, x) \
  X(int, y) \
  X(int, z) \
  X(int, w)

struct point {
#define X(T, N) T N;
  X_POINT
#undef X
};

void point_crc32(const struct point *p, crc32_state_t *state)
{
#define X(_, N) crc32(state, &p->N, sizeof(p->N));
  X_POINT
#undef X
}

void point_crc64(const struct point *p, crc64_state_t *state)
{
#define X(_, N) crc64(state, &p->N, sizeof(p->N));
  X_POINT
#undef X
}

Исправление MOPKOBKA, :

Я уже выше написал про процедурные макросы и всё будет автоматизированно, корректно, быстро и безопасно.

Есть пример такого макроса? Я думаю что он выйдет намного длиннее чем макрос на С. И непонятно почему ты его описываешь как «быстро» (=производительно?) и «безопасно», по сравнению с чем?

#define X_POINT \
  X(int, x) \
  X(int, y) \
  X(int, z) \
  X(int, w)

struct point {
#define X(T, N) T N;
  X_POINT
#undef X
};

void point_crc32(const struct point *p, crc32_state_t *state)
{
#define X(_, N) crc32(state, &p->N, sizeof(p->N));
  X_POINT
#undef X
}

void point_crc64(const struct point *p, crc64_state_t *state)
{
#define X(_, N) crc64(state, &p->N, sizeof(p->N));
  X_POINT
#undef X
}

Исправление MOPKOBKA, :

Я уже выше написал про процедурные макросы и всё будет автоматизированно, корректно, быстро и безопасно.

Есть пример такого макроса? Я думаю что он выйдет намного длиннее чем макрос на С. И непонятно почему ты его описываешь как «быстро» (=производительно?) и «безопасно», по сравнению с чем?

#define X_POINT \
  X(int, x) \
  X(int, y) \
  X(int, z) \
  X(int, w)

struct point {
#define X(T, N) T N;
  X_POINT
#undef X
};

void point_crc(const struct point *p, crc32_state_t *state)
{
#define X(_, N) crc32(state, &p->N, sizeof(p->N));
  X_POINT
#undef X
}

Исправление MOPKOBKA, :

Я уже выше написал про процедурные макросы и всё будет автоматизированно, корректно, быстро и безопасно.

Есть пример такого макроса? Я думаю что он выйдет намного длиннее чем макрос на С. И непонятно почему ты его описываешь как «быстро» (=производительно?) и «безопасно», по сравнению с чем?

#define X_POINT \
  X(int, x) \
  X(int, y) \
  X(int, z) \
  X(int, w)

struct point {
#define X(T, N) T N;
  X_POINT
#undef X
};

void point_crc(const struct point *p, crc32_state_t *state)
{
#define X(_, N) crc32(state, p->N);
  X_POINT
#undef X
}

Исправление MOPKOBKA, :

Я уже выше написал про процедурные макросы и всё будет автоматизированно, корректно, быстро и безопасно.

Есть пример такого макроса? Я думаю что он выйдет намного длиннее чем макрос на С. И непонятно почему ты его описываешь как «быстро» (=производительно?) и «безопасно», по сравнению с чем?

#define X_POINT \
  X(int, x) \
  X(int, y) \
  X(int, z) \
  X(int, w)

struct point {
#define X(T, N) T N;
  X_POINT
#undef X
};

void point_crc(const struct point *p, crc_state_t *state)
{
#define X(_, N) crc(state, p->N);
  X_POINT
#undef X
}

Исходная версия MOPKOBKA, :

Я уже выше написал про процедурные макросы и всё будет автоматизированно, корректно, быстро и безопасно.

Есть пример такого макроса? Я думаю что он выйдет намного длиннее чем макрос на С. И непонятно почему ты его описываешь как «быстро» (=производительно?) и «безопасно», по сравнению с чем?