add extern C declaration