当前位置: 技术问答>linux和unix
简单问题:Unix下使用extern关键字的标准C程序如何编译?比如...
来源: 互联网 发布时间:2015-04-13
本文导语: f1.c int number; main() { number++; } f2.c extern number; main() { number--; } 应该怎样编译才能让程序f1.c通过呢?cc -c...???????? | 一个可执行程序只能有一个main()函数,你这样写肯定不行! 你究竟想实现什么样的功能...
f1.c
int number;
main()
{
number++;
}
f2.c
extern number;
main()
{
number--;
}
应该怎样编译才能让程序f1.c通过呢?cc -c...????????
int number;
main()
{
number++;
}
f2.c
extern number;
main()
{
number--;
}
应该怎样编译才能让程序f1.c通过呢?cc -c...????????
|
一个可执行程序只能有一个main()函数,你这样写肯定不行!
你究竟想实现什么样的功能?
如果照你的思路,应该这样写:
f1.c
int number;
void func_selfadd()
{
number++;
}
f2.c
#include
extern int number; //声明number为外部变量
int main()
{ extern func_selfadd();//声明func_selfadd为外部函数
func_selfadd();
number--;
printf("number=%d",number);
return 0;
}
运行$ cc f1.c f2.c -o f1
结果应该是:number=0
你究竟想实现什么样的功能?
如果照你的思路,应该这样写:
f1.c
int number;
void func_selfadd()
{
number++;
}
f2.c
#include
extern int number; //声明number为外部变量
int main()
{ extern func_selfadd();//声明func_selfadd为外部函数
func_selfadd();
number--;
printf("number=%d",number);
return 0;
}
运行$ cc f1.c f2.c -o f1
结果应该是:number=0
|
我看你们误会楼主的意思了,他是不是说:F1。c是主程序文件,NUMBER变量是在F2。c
中定义,F1.c中引用的.所以说。。。
中定义,F1.c中引用的.所以说。。。