关于static函数问题

[复制链接]
查看11 | 回复5 | 2012-12-6 10:02:26 | 显示全部楼层 |阅读模式
在C语言中,static与extern是相互对立的。用于函数时,前者限制这个函数只能在本文件内使用,后者表示这个函数允许在别的文件中使用,默认按后者的情况处理。用于全局变量时,前者限制这个变量只能在本文件内的函数中使用,后者一般用在头文件中表示这个变量是允许在多个文件中共用。...
回复

使用道具 举报

千问 | 2012-12-6 10:02:26 | 显示全部楼层
重复定义造成的。extern int my_test_func(int);声明一个外部函数extern 说明 后面的函数或变量,不在当前的.c (.o里面)代码链接的时候才会去找。下面static int my_test_func(int a) { return a;}你又把它定义成一个内部函数。static修...
回复

使用道具 举报

千问 | 2012-12-6 10:02:26 | 显示全部楼层
4 extern int my_test_func(int);5 static int my_test_func(int a)这两行是矛盾的 static的只能在当前的cpp文件里使用 当然不能声明为extern;全部改成static4 static int my_test_func(int);5 static int my_test...
回复

使用道具 举报

千问 | 2012-12-6 10:02:26 | 显示全部楼层
#define MAX(a,b) (a > b ? a:b); // 这里不要分号 4 extern int my_test_func(int);
// 如果这里是声明类型不对,而且这声明也是没有必要的,如果是要外部引用,那下面的调用会出问题改为 static int my_test_func(int);5 static int...
回复

使用道具 举报

千问 | 2012-12-6 10:02:26 | 显示全部楼层
我也是来学习的,根据不同编译器,会产生不同结果。我已用vc6.0测试,灭有问题。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行