add extern C