In order for the compiler to better schedule the instructions of a function, it needs to know if there are any dependencies between the parameter variables. If there is no dependency, usually the compiler can group together instructions increasing performance and efficiency.
`restrict` is placed in the arguments list of a function, between the * and the parameter name, like this: `int func(char *restrict arg)`
`restrict` is a C-only keyword, it does not exist on C++ (`__restrict__` does, but it does not have the same function)