If you know what is ISR then other things related to ISR are compiler specific. Generally every compiler/controller gives the guide lines to handle the interrupts.
I am mentioning here some general guideline irrespective of compiler / controller:
• ISRs cannot return a value.
• ISRs cannot be passed parameters.
• On many processors/compilers, floating-point operations are not necessarily re-entrant. In some cases one needs to stack additional registers. In other cases, one simply cannot do floating point in an ISR.
• Furthermore, given that a general rule of thumb is that ISRs should be short and sweet, one wonders about the wisdom of doing floating-point math here
• In a vein similar to the third point, printf() often has problems with reentrancy and performance. So avoid it ISR.
Added after 7 minutes:
And last of all you should take care about the thing that whenever one ISR runs disable all other interrupts.