C is higher level programming language. Development of complex algorithm is easy with c compared to assembly. C makes portable and readable code. Many C compilers produce good optimized code but some time C has its own limitations while accessing CPU registers or special CPU features. In this case assembly can be used.