Macros and Inline functions are efficient than calling a normal function. The times spend in calling the function is saved in case of macros and inline functions as these are included directly into the code.
Macros and inline functions increased the size of executable code.
Because in C when you say the name of the array it means the address of the first element.
int func(int a);
In this when you call the function by passing the argument a actually &a(address of first element) gets passed. Hence it is impossible to pass by value in C.
interrupt latency is the time required to return from the interrupt service routine after tackling a particular interrupt. We can reduce it by writing smaller ISR routines.
A variable should be declared volatile whenever its value could change unexpectedly. In practice, only three types of variables could change:
The addition of a 'const' qualifier indicates that the (relevant part of the) program may not modify the variable.
Static variables can only be accesed in the files were they are declared.
Static variable within the scope of a function store it's values in consecutive calls of that function.
Static functions can only be caled within the file they are defined.