最近看到一些SDK,里面在调用函数的时候,很多地方都写的全名,比如如下调用
void tcp_connect_init( void );
tcp_connect_init();
还有一种就是只写了
void tcp_connect_init( void );
这种方式调用,
请问下这两种调用方式有什么差别?为什么要写全函数名调用,就像函数声明那种方式调用?
如果是被调函数(如:void tcp_connect_init( void ))和调用它的函数(如:void main(void))在同一个.c文件里面,当被调函数写在调用它的函数之前的话,那么当调用它的函数去调用被调函数时,可以直接调用而不需要声明,当然,这种情况下声明被调函数也是ok的。当被调函数写在调用它的函数之后的话,那么当调用它的函数去调用被调函数之前,必须声明被调函数。
void tcp_connect_init( void );/ 这一句是函数的声明 /
tcp_connect_init(); /* 这一句是函数的调用 …
确实,我测试发现了,关键是这句申明竟然放在了函数内部,我之前没遇到过这种弄情况,所以感觉很奇怪