关于全局变量的一个问题

#include<stdio.h>

//int a;

//a=10;

int a=10;

int main(){

  printf("%d",a);

  getchar();

  return 0;

}

会有一个警告:数据定义没有类型或者存储类型

warning: data definition has no type or storage class [enabled by default]|
||=== Build finished: 0 error(s), 1 warning(s) (0 minute(s), 1 second(s)) ===|

#include<stdio.h>

int a;

int main(){

a=10;
printf("%d",a);
getchar();
return 0;
}

这样不会出现警告

#include<stdio.h>

//int a;

//a=10;

int a=10;

int main(){

  printf("%d",a);

  getchar();

  return 0;

}

这样却不会出现警告。。

时间: 2024-08-26 08:59:48

关于全局变量的一个问题的相关文章

Python 中模块间全局变量的使用上的注意

最近用Python写代码,需要用到模块间的全局变量. 网上四处搜索,发现普遍做法是把全局变量放到一个独立的模块中,使用时,导入此全局变量模块即可. 但是在实际使用过程中发现了些小问题:在使用如下代码导入全局变量模块时,各个模块获取到的全局变量都是初始值. from module import global_var 但是如果使用「模块名.全局变量名」来访问时,却又是正常的: import module print module.global_var 为了弄清其中的原委,我写了个测试程序来仔细查看其

Python 3 实现定义跨模块的全局变量和使用

尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖. Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量: 我们知道Python使用变量的时候是可以直接使用的,x=[] ,y=2,z="123",而不需要先定义(var x; var y=2;var z='222'),这样的话,在函数内部就无法操作外部的变量了,因为它总会认为你是在定义一个新变量

【Android数据传递】全局变量的使用方法

[Android数据传递]全局变量的使用方法  印第安的老乔克 2013-02-18 21:36:14 android中Application是用来保存全局变量的,在package创建的时候就存在了,到所有的activity都被destroy掉之后才会被释放掉.所以当我们需要全局变量的时候只要在application中去实现,通过调用Context的getApplicationContext或者Activity的getApplication方法来获得一个Application对象,就可以设置或读

全局变量和递归

区别: 1.拿循环来说,全局变量不参与循环体,局部变量参与循环体 2.定义全局变量后,在函数外部可以取到该变量 3.看下面代码 $a=10; show(); function show() { $a=1; global $a; $a=100; echo $a; }//输出 100 $a=10; show(); function show() { $a=1; global $a; echo $a; } //输出 10 4.全局变量是一个完整的变量,可以连续记忆;局部变量不可以记忆: 递归: 就是做

【编程技巧】解耦——避免全局变量

全局变量在整个源文件中,相当于一条直达快捷的车道. 一语点醒梦中人:在这里给全局变量赋值A,B,C,在那边分析A,B,C决定做什么?这有什么不对么? 设计代码时,分设备层.应用层.分层设计就是为了解耦,否则,修改一个功能,可能要掘地三尺的修改应用层和设备层. 全局变量在多处被修改,不容易阅读和理清楚其逻辑,维护起来比较麻烦. 存在的即是合理的,该用还要用,要知道哪些情况尽量避免使用,哪些情况可以使用? 单片机小程序,如果使用全局变量会比较简单明了,否则各种函数传递来替代全局变量的功能,反而不好.

全局变量和局部变量的区别

1.按作用域分析: 全局变量的作用域是整个程序,局部变量的作用域是声明它的函数 2.按生命周期分析: 全局变量的生命周期结束于应用程序结束,局部变量的生命周期结束于函数的结束 3.按内存分配区来分析: 首先内存分为如下几个区: 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由os回收 .注意它与数据结构中的堆是两回事,分配方式倒是类似于链表. 3

浅谈DevExpress&lt;二&gt;:设计一个完整界面(2)

下面来把剩下的工作做完,换肤功能昨天已近讨论过,今天就不重复了.首先建立三个全局变量,一个存放文件路径,一个存放数据,一个存放过滤条件. string DBFileName; DataView dataView; string[] filter = new string[3]; 取得数据并绑定到表格中: DBFileName = DevExpress.Utils.FilesHelper.FindingFileName(Application.StartupPath, "Products.xml&

Chapter 14_2 全局变量声明

Lua中的全局变量不需要声明就可以使用.对于小程序十分方便,但是大型程序中 一处简单的笔误就可能造成难以发现的bug. 不过,这种性能可以改变.由于Lua将全局变量放在一个普通的table中,可以通过元表来改变其访问全局变量时的行为. 一种方法是简单地检测所有对全局table中不存在key的访问: setmetatable(_G,{ __newindex = function(_, n) error("attempt to write to undeclared variable "

PHP中的超级全局变量

PHP内置了一些超级全局变量,我们可以在脚本的任何地方使用和可见,下面记录一下这些全局变量的作用: 1.$_SERVER $_SERVER超级全局变量包含由web服务器创建的信息,它提供了服务器和客户配置及当前请求环境的有关信息.根据服务器不同,$_SERVER中的变量值和变量个数会有差别,不过一般都可以找到CGI1.1规范中定义的变量.其中包括: $_SERVER[ 'HTTP_REFERER' ] ; 引导用户到达当前位置的页面的URL : $_SERVER[ 'REMOTE_ADDR' ]