全局变量#include stdafx.h#includeiostream#includestringusing namespace stdvoid main(){void s
全局变量
#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
void main()
{
void swap();
extern int a,b;//extern 不是将其他文件里面的ab作用域扩展到本文件吗
//本文件有ab,为啥还用extern引用
a=3;
b=10;
swap();
cout<<"a="<<a<<",b="<<b<<endl;
}
int a,b;//这个a,b怎么放在主函数之后 之前之后有啥子区别??
void swap()
{
int temp;
temp=a;
a=b;
b=temp;
}
全局变量 main前main后
[解决办法]计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……
对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!
VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。
(Turbo C或Borland C用Turbo Debugger调试,Linux或Unix下用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
[解决办法]放在主函数之前就不需要extern了,extern是导入符号的意思,不管a,b在哪个文件中。
[解决办法]
[解决办法]extern是声明 不是定义 不分配内存空间
就是告诉程序 a和b在别的地方定义的
如果没有extern, ab又在main后面 应该会报错吧
[解决办法]答第二个问题, 放在main之前之后没区别.
[解决办法]
首先,extern是声明外部文件的变量,你需要使用外部文件的变量。
其次,你在本文件内声明全集变量放在main前后,没有区别,但是一般都是放在前面,方便查看使用。
然后,你这代码肯定有错,冲突了。
最后,现在一般都不会这样使用,因为当代码多了,文件多了,特别是很多人一起开发,那么就会很不方便。
[解决办法]楼主,是这样的:
你的第一个问题:
extern int a,b;//extern 不是将其他文件里面的ab作用域扩展到本文件吗
//本文件有ab,为啥还用extern引用
你这个 a 和 b 是在main里面声明的,它只是在main里面有效,是引用于另一个文件定义的全局变量 a、b;
你的第二个问题:
int a,b;//这个a,b怎么放在主函数之后 之前之后有啥子区别??
当然有区别! 你现在这个 a、b 是你自己文件定义的全局变量,是在 main 之后定义的,如果你放在 main 前面定义,就会出错了。
[解决办法]这个放前放后没什么区别吧!
只不过编译器不同,有的会报错,有的能通过。