您的位置:首页 > 产品设计 > UI/UE

GCC 和 VC 关于函数提前申明的不同要求。

2011-06-07 01:58 204 查看
发现GCC 编译的时候不需要函数提前申明,链接的时候当然要了。如下代码竟然能够通过。

GCC 没有打开-Wall开关时没有任何警告和错误。

Codeblocks有点小小的警告:warning: implicit declaration of function `iswap'|

||=== Build finished: 0 errors, 1 warnings ===|

VC 直接提示错误:error C2065: 'iswap' : undeclared identifier

想想GCC这点很危险啊····VC的警告级别默认挺高的。
 

//a.c
#include <stdio.h>
extern int shared ;//变量却要求提前申明
//void iswap( int *a , int * b )  ;//函数却不要求提前申明
int main()
{
int a = 100 ;
iswap(&a , &shared ) ;
printf("%d/n " , a ) ;
return  0 ;
}
 

int shared = 2 ;
void iswap( int *a , int * b ) {
*a ^= *b ^= *a ^= *b ;
}
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gcc warnings function build c