- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
#include <stdio.h>
#include <stdint.h>
#define foreach(a, b)\
for(typeof(*(b)) * _shit_begin = (b), * _shit_end = ((_shit_begin) + sizeof((b))/sizeof(*(b))), * (a) = _shit_begin; (a) != _shit_end; ++(a))
int main(void) {
{
uint32_t vec[6][3] = {
{10, 11, 12},
{20, 21, 22},
{30, 31, 32},
{40, 41, 42},
{50, 51, 52},
{60, 61, 62},
};
foreach(it, vec[2])
fprintf(stderr, "%u\n", *it);
}
{
uint32_t vec[] = {0, 1, 2, 3, 4, 5};
foreach(it, vec)
fprintf(stderr, "%u\n", *it);
}
{
uint8_t vec[] = {0, 1, 2, 3, 4, 5};
foreach(it, vec)
fprintf(stderr, "%u\n", *it);
}
{
uint64_t vec[] = {0, 1, 2, 3, 4, 5};
foreach(it, vec)
fprintf(stderr, "%lu\n", *it);
}
return 0;
}
Си++. Инновации, 21-йвек, 11-й год. auto и for(a:b). Прорыв, не то, что в этой питушарской сишке допотопной. А ведь это сишка могла 30лет назад.
P.S. Не вброс.