Mainly for C language