История изменений
Исправление 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, :
Я уже выше написал про процедурные макросы и всё будет автоматизированно, корректно, быстро и безопасно.
Есть пример такого макроса? Я думаю что он выйдет намного длиннее чем макрос на С. И непонятно почему ты его описываешь как «быстро» (=производительно?) и «безопасно», по сравнению с чем?