Используя ключевое слово restrict:
int f(int* restrict a, int* restrict b);
Я могу дать указание компилятору, что массивы a и b не перекрываются. Скажем, у меня есть структура:
struct s{
(...)
int* ip;
};
и напишите функцию, которая принимает два объекта struct s:
int f2(struct s a, struct s b);
Как я могу так же объяснить компилятору в этом случае, что a.ip и b.ip не перекрываются?