摘要:所谓的隐函数就是只在本.c,或者.cpp文件中声明(
没在头文件中声明的函数)的函数. 对于其非本文件的称之为隐世函数.
万恶之源:C语言中的隐式函数声明
今天在调用postgresql源码中get_rel_name()函数时,不小心调用了隐函数get_relation_name();出现
delrelation_record.c:70:16: warning: implicit declaration of function ‘get_relation_name’ [-Wimplicit-function-declaration]
table_name = get_relation_name(relOid);
^~~~~~~~~~~~~~~~~
delrelation_record.c:70:14: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
table_name = get_relation_name(relOid);

在调用postgresql源码时,遇到隐式函数声明问题,如get_relation_name()。文章对比了get_rel_name()和get_relation_name()的区别,前者在头文件中声明,允许外界调用,后者在ruleutils.c中定义,没有显式声明,导致编译警告。隐函数的使用通常是为了防止外界不必要的调用。
最低0.47元/天 解锁文章
3415

被折叠的 条评论
为什么被折叠?



