Завёл себе репозиторий, чтобы записывать туда сишные трюки.
https://sourceforge.net/p/c-is-freedom/code/ci/mas...
Сейчас там есть шаблоны на си в двух вариантах. Кстати более гибкие и понятные чем с++ шаблоны.
https://sourceforge.net/p/c-is-freedom/code/ci/mas...
Был бы очень рад, если кто-то предложит туда мерж со своими трюками.
( fork -> затем закоммитить в форк своё -> merge reguest )
Вот ещё трюк:
/*
USAGE:
int64_t m = supermax(1, 234234, 35423523, 777); // m = 35423523
*/
#include "stdint.h"
#include "limits.h"
#define NUM_OF_ARGS(...) (sizeof((int64_t[]){__VA_ARGS__})/sizeof(int64_t))
#define supermax(...) _supermax((int64_t[]){__VA_ARGS__}, NUM_OF_ARGS(__VA_ARGS__))
int64_t _supermax(int64_t arr[], int size)
{
int64_t max = arr[0];
int i = 0;
while (i < size) {
if (arr[i] > max)
max = arr[i];
i++;
}
return max;
}
#include "stdio.h"
int main()
{
int64_t x = supermax(1,2,3,4,5);
printf("%lld\n", x);
}