conflicting declaration of c function