C Programming: A Modern Approach