精华内容
下载资源
问答
  • PHP Global变量定义当前页面的全局变量 2009-12-04 13:14 佚名 etang.info 字号:T | T PHP Global变量的主要作用是定义一个全局变量。不过在实际操作的过程中通常会遇到一些突发情况,比如echo $a...



    PHP Global变量定义当前页面的全局变量

    2009-12-04 13:14 佚名 etang.info 字号:T | T
    一键收藏,随时查看,分享好友!

    PHP Global变量的主要作用是定义一个全局变量。不过在实际操作的过程中通常会遇到一些突发情况,比如echo $a打印不出来任何东西等问题。

    AD:

    PHP Global变量在实际应用中会发现许多问题需要我们不断的去完善处理。我们在这篇文章中就针对PHP Global变量出现的问题给出了一些具体的解决办法。

    1:PHP Global变量的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件

    1. $a=123;  
    2.  
    3. function aa()  
    4. {  
    5. Global $a;   
    6. //如果不把$a定义为global变量
      ,函数体内是不能访问$a的  
    7. echo $a;  
    8. }  
    9. aa();  

    总结:在函数体内定义的PHP Global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,

    1. $glpbal $a;  
    2. $a=123;  
    3.  
    4. function f()  
    5. {  
    6. echo $a; //错误,  
    7. }  

    再看看下面一例

    1. function f()  
    2. {  
    3. global $a;  
    4. $a=123;  
    5. }  
    6.  
    7. f();  
    8. echo $a; //正确,可以使用 

    展开全文
  • 变量定义的注意事项

    千次阅读 2007-09-17 17:44:00
    变量定义的注意事项我们在写代码的过程中经常会出现变量被重复定义了,我们就做一个小测试,看看这么避免这个问题,什么时候出错。1. 普通变量重复定义假设在有三个文件a.h, b.cpp, c.cpp.//a.h int i = 123; //b...

                                变量定义的注意事项

    我们在写代码的过程中经常会出现变量被重复定义了,我们就做一个小测试,看看这么避免这个问题,什么时候出错。

    1.   普通变量重复定义

    假设在有三个文件a.h, b.cpp, c.cpp.

    //a.h

     int i = 123;

     

    //b.cpp 

    include “a.h”

     

    //c.cpp

    include “a.h”

    这时候会出现重复定义错误,原因出自编译的时候,.h文件会被展开,两个.cpp文件会被变成

    //b.cpp 

    int i = 123;

     

    //c.cpp

    int i = 123;

     

    错误出自链接时,发现定义了两个变量定义在全局数据区,显然重复定义。

     

    如果没有a.h,只有两个cpp的话,可以通过下面的方式避免重复。

    //b.cpp 

    extern int i = 123;

     

    //c.cpp

    int i = 123;

             这样的话两个i是同一个变量。

    有人说pragma once不就是用与解决重复定义的问题吗? 你可以试试看,结果还是错误。

    这是因为我们没有弄清楚pragma once的真正用意,一知半解的时候就用了。

    假设有两个文件a.h a.cpp

    //a.h

     int i = 123;

     

    //a.cpp 

    include “a.h”

    include “a.h”

     

    如果a.cpp被引用两次的话,会出现重复定义的错误, 问题就是icpp被展开了两次。

    这时候如果加上pragama once或者用预定义宏的话,就可以解决这个问题。

    pragma once的主要用途是避免在同一个cpp文件中某一个.h文件被多次展开,特别是在间接引用的时候。

         关于我们提出来的第一个问题,我们解决办法之一就是把定义放到.cpp中,如果其他地方引用的话,就用extern方式。 对于普通变量extern 可以放在变量声明处,也可以放在定义处,也可以放在想引用地方,用于告诉编译器,我在程序数据区是唯一的,不要再重新定义一个兄弟了。

    2.   关于const变量

    根据前面的文章《c++const的完全解析》,我们知道它是放在符号表中的,

    //a.h

    const int i = 123;

     

    //b.cpp 

    include “a.h”

     

    //c.cpp

    include “a.h”

    只维护一个在符号表中的变量,展开相当于

    //b.cpp 

    const int i = 123;

     

    //c.cpp

    extern const int i; //这里面有一个小问题我在下面会提到

    所以就不会出现重复定义的问题。

     

    但是如果const变量是定义在.cpp文件中的呢,我们都知道用extern就可以了,假设有两个文件a.cppb.cpp

    //a.pp

    const int i = 123;

     

    //b.cpp 

    extern const int i;

    但是编译的时候会出错,如果在a.cpp中补一个extern就可以了,如下

    //a.pp

    extern  const int i = 123;

     

    //b.cpp 

    extern const int i;

     

    3.   关于static变量

    根据文章《C++Static的完全解析》,static变量是放在全局static数据区的。而且它有唯一性和长期性两个特性。

     

    //a.h

    static int i = 123;

     

    //b.cpp 

    include “a.h”

     

    //c.cpp

    include “a.h”

    这样的用法也是正确的,不会出现重复定义现象。

     

    如果static变量被定义到.cpp文件中,这时候改变量就活动范围就只是这个 cpp文件了,它不能通过extern被其它.cpp文件引用到。

     

     

     

     
    展开全文
  • 宏定义不分配内存,变量定义分配内存。 <br /> 2。宏名和参数的括号间不能有空格 <br /> 3。宏替换只作替换,不做计算,不做表达式求解 <br /> //下面正确的标准的写法 typedef int(FUNC...

    宏定义函数指针类型&函数返回左值类值

    1。宏定义不分配内存,变量定义分配内存。

    2。宏名和参数的括号间不能有空格

    3。宏替换只作替换,不做计算,不做表达式求解

    //下面是正确的标准的写法
    typedef int(FUNC1)(int in);
    typedef int(FUNC2) (int*,int*,int*);

    //下面两种宏的写法容易出错,是宏定义中应避免的,
    typedef int FUNC1 (int in);
    typedef int FUNC2 (int*,int*,int*);
    //当FUNC1为int*时,就容易造成歧义,有时不能达到我们所要求的目的。


    typedef int *p (int in);//表示p是一个函数,这个函数的返回类型是int* ,这个函数只有一个整型形参;
    typedef int(*p) (int*,int*,int*);//表示p是一个函数指针,这个函数指针指向的函数有三个整形指针形参,指向的函数返回类型是int 。 

    ##################################

    定义函数指针类型:

      typedef int (*fun_ptr)(int,int);

    以上gcc,g++中测试通过

    1 #include <sys/epoll.h>
    2 #include <pthread.h>
    3 #include <stdio.h>
    4 #include <unistd.h>
    5 int (*p)();//定义函数指针和函数指针类型在g++ gcc都可以
    6 typedef int& (*P)();//定义函数指针和函数指针类型在g++ gcc都可以
    7 P p1,p2;
    8 int x = 0;
    9 int& setx()//只在g++可以这样函数
    10 {
    11     return x;
    12 }
    13 int main (void)
    14 {
    15     p1 = setx;
    16     //p1()=92;
    17     printf("%d", p1());
    18     return 0;
    19 }
    为了您的安全,请只打开来源可靠的网址

    打开网站    取消
    来自: http://hi.baidu.com/jrckkyy/blog/item/d7ccb5086429c33ce8248866.html

    展开全文
  • 其实在前面的例子中已经多次用到了变量。在程序运行期间其值可以改变的量称为变量。一个变量应该有一个名字,并在内存中占据一定的存储单元,在该存储单元中存放变量的值。请注意区分变量名和变量值这两个不同的概念...
    其实在前面的例子中已经多次用到了变量。在程序运行期间其值可以改变的量称为变量。一个变量应该有一个名字,并在内存中占据一定的存储单元,在该存储单元中存放变量的值。请注意区分变量名和变量值这两个不同的概念,见图2.6。


    图2.6

    变量名规则

    先介绍标识符的概念。和其他高级语言一样,用来标识变量、符号常量、函数、数组、类型等实体名字的有效字符序列称为标识符(identifier)。简单地说,标识符就是一个名字。变量名是标识符的一种,变量的名字必须遵循标识符的命名规则。

    C++规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。下面列出的是合法的标识符,也是合法的变量名:
    sum, average, total, day, month, Student_name, tan, BASIC, li_ling

    下面是不合法的标识符和变量名:
    M.D.John, $123, #33, 3G64, Ling li, C++, Zhang-ling, U.S.A.

    注意:在C++中,大写字母和小写字母被认为是两个不同的字符。因此,sum和SUM是两个不同的变量名。一般地,变量名用小写字母表示,与人们日常习惯一致,以增加可读性。应注意变量名不能与C++的关键字、系统函数名和类名相同。在国外软件开发工作中,常习惯在变量前面加一个字母以表示该变量的类型,如iCount表示这是一个整型变量,cSex表示这是一个字符型变量。

    C++没有规定标识符的长度(字符个数),但各个具体的C编译系统都有自己的规定。有的系统取32个字符,超过的字符不被识别。

    定义变量

    在C++语言中,要求对所有用到的变量作强制定义,也就是必须“先定义,后使用”,如例2.2和例2.3那样。定义变量的一般形式是:
    变量类型  变量名表列;
    变量名表列指的是一个或多个变量名的序列。如:
    float a,b,c,d,e;
    定义a,b,c,d,e为单精度型变量,注意各变量间以逗号分隔,最后是分号。可以在定义变量时指定它的初值。如:
    float a=83.5, b, c=64.5, d=81.2, e;  //对变量a,c,d指定了初值,b和d未指定初值

    C语言要求变量的定义应该放在所有的执行语句之前,而C++则放松了限制,只要求在第一次使用该变量之前进行定义即可。也就是说,它可以出现在语句的中间,如:
    int a;  //定义变量a(在使用a之前定义)
    a=3;  //执行语句,对a赋值
    float b;  //定义变量b(在使用b之前定义)
    b=4.67;  //执行语句,对b赋值
    char c;  //定义变量c(在使用c之前定义)
    c=’A';  //执行语句 ,对c赋值

    C++要求对变量作强制定义的目的是:
    1) 凡未被事先定义的,不作为变量名,这就能保证程序中变量名使用得正确。例如,如果在声明部分写了
    int student;
    而在执行语句中错写成statent。如
    statent=30;
    在编译时检查出statent未经定义,作为错误处理。输出“变量statent未经声明”的信息,便于用户发现错误,避免变量名使用时出错。

    2) 每一个变量被指定为一确定类型,在编译时就能为其分配相应的存储单元。如指定a和b为int型,一般的编译系统对其各分配4个字节,并按整数方式存储数据。

    3) 指定每一变量属于一个特定的类型,这就便于在编译时,据此检查该变量所进行的运算是否合法。例如,整型变量a和b,可以进行求余运算:
    a%b
    %是“求余”,得到a/b的余数。如果将a和b指定为实型变量,则不允许进行“求余”运算,在编译时会给出有关的出错信息。

    为变量赋初值

    允许在定义变量时对它赋予一个初值,这称为变量初始化。初值可以是常量,也可以是一个有确定值的表达式。如
    float a, b=5.78*3.5, c=2*sin(2.0);
    表示定义了a,b,c为单精度浮点型变量,对b初始化为5.78*3, 对c初始化为2*sin(2.0),在编译连接后,从标准函数库得到正弦函数sin(2.0)的值,因此变量c有确定的初值。变量a未初始化。

    如果对变量未赋初值,则该变量的初值是一个不可预测的值,即该存储单元中当时的内容是不知道的。例如,若未对a和b赋值,执行输出语句
    cout<<a<<” “<<b<<” “<<c<<endl;
    输出结果可能为
    1.48544e-38 15 1.81858  (各次运行情况可能不同)
    初始化不是在编译阶段完成的(只有在第4章中介绍的静态存储变量和外部变量的初始化是在编译阶段完成的),而是在程序运行时执行本函数时赋予初值的,相当于执行一个赋值语句。例如:
    int a=3;
    相当于以下两个语句 :
    int a;  // 指定a为整型变量
    a=3;  //  赋值语句,将3赋给a
    对多个变量赋予同一初值,必须分别指定,不能写成
    float a=b=c=4.5;
    而应写成
    float a=4.5, b=4.5, c=4.5;

    float a, b, c=4.5;
    a=b=c;

    展开全文
  • [C++] 结构体Struct类型和变量定义

    千次阅读 2020-09-08 18:12:32
    一:struct 和typedef struct的区别 1.首先介绍一下C语言的用法: ...注意:这里不能省略struct (C++可以),可以采用下面定义的方式省略struct //定义一个结构体类型 //定义一个数据类型,固定大小内存块的别名,.
  • 变量定义
  • union 共用体声明和共用体变量定义

    千次阅读 2014-05-06 16:38:36
    共用体(有些人也叫"联合")声明和共用体变量定义与结构体十分相似。其形式为: union 共用体名{ 数据类型 成员名; 数据类型 成员名; ... } 变量名; 共用体表示几个变量共用一个内存位置,在不同的时间保存不同的...
  • 在头文件中定义变量以及static变量意味着什么?全局变量要如何正确使用?关键字extern要怎么用?
  • c++全局变量正确声明

    千次阅读 2016-04-12 10:35:51
    C++中全局变量声明错误情况 造成LNK2005错误主要有以下几种情况:   1.重复定义全局变量。...正确的应该是在一个CPP文件中定义如下:int g_Test;那么在使用的CPP文件中就应该使用:extern
  • 全局变量正确声明

    千次阅读 2009-06-03 17:46:00
    造成LNK2005错误主要有以下几种情况: 1.重复定义全局变量。可能存在两种情况: A、...正确的应该是在一个CPP文件中定义如下:int g_Test;那么在使用的CPP文件中就应该使用:extern int g_Test即可,如果还是使用int
  • 1.下面有关static类变量和实例变量的描述,正确的有? static类变量又叫静态成员变量,它不需要创建对象就可以已经在内存中存在了 在创建实例对象的时候,内存中会为每一个实例对象的每一个非静态成员变量...
  • 说明:出现这个错误,请你先检查重复定义变量是否是定义在了.h头文件中,如果是,请您耐心的看完这篇文章,他会告诉你错误的根本原因。 如果你很着急,不想弄清楚原因,请直接按下面的方法更改: 假设重复定义的...
  • 函数中的声明和变量定义

    千次阅读 2019-04-14 19:44:13
    函数中的声明和变量定义声明与定义比较前向引用函数属性内部/内嵌函数函数应用:打印图形和数学计算变量作用域全局变量与局部变量局部变量全局变量globa语句可变类型的全局变量 声明与定义比较 ​ 在某些编程语言...
  • 全局变量定义在项目文件,app.js里面,找到下面定义,或者自己写一个。 在里面定义要全局访问的变量名字。 2 使用全局变量 2.1 定义引用 在需要应用的文件头,定义应用: 2.2 使用全局变量 2.3 改变...
  • 正确使用 Volatile 变量

    千次阅读 2014-10-22 17:03:17
    Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易...
  • .c中变量必须定义在执行语句前面

    千次阅读 2015-09-08 13:16:22
    废话不多说,先看下面代码: int main() {  int a =1; a = 2; int b = 3; } 如果你将这段代码保存在.c文件下,在vc++6.0中去编译,编译器会报错,但同样的代码保存在.cpp文件下再编译,正确。这是为什么呢? 这...
  • 题目:以下关于变量和常量的叙述中,正确的是() A.变量的取值在程序运行过程中可以改变,常量则不行 B.变量具有类型属性,常量则没有 C.变量具有对应的存储单元,常量则没有 D.可以对变量赋值,不能对常量赋值...
  •   很多人可能直接把全局变量写进.h文件,然后用多个文件包含这个头文件,编译时就会报错:变量定义… 头文件的作用就是要给外部提供接口使用的,所以请记住, 只在.h中做声明,在.cpp文件中进行定义,而不要在...
  • C语言指针定义变量方式

    千次阅读 2016-09-23 14:46:04
    变量a给出下面定义: 1、 一个整型数; int a;   2、 一个指向整型数的指针; int *a;   3、 一个指向指针的指针,它指向的指针是指向一个整型数; int **a;   4、 一个有10个整型数的数组...
  • 在linux平台中编写复杂的多线程程序,没有互斥锁是肯定不行的,而仅有互斥锁没有条件变量也是万万不行的。关于互斥锁需要注意的问题不多,而且...但是条件变量正确使用却不是一件简单的事,有很多需要注意的地方。
  • static定义全局变量的分析

    千次阅读 2013-03-04 09:18:04
    看到有一位同学在头文件中这么写: 1 static const wchar_t* ...这种定义变量的方式我从来没有见过,而且它还能顺利通过编译,于是我很想知道编译器是如何处理这种变量定义的。
  • 勿在头文件中定义static变量

    万次阅读 2016-02-29 22:05:20
    static const wchar_t* g_str2 = …这种定义变量的方式我从来没有见过,而且它还能顺利通过编译,于是我很想知道编译器是如何处理这种变量定义的。定义全局变量时使用static,意味着该变量的作用域只限于定义它的...
  • 第一点,建议下载的时候就自定义下载路径,没有scripts文件夹是因为你的python安装路径里面出现了中文,直接将python安装在D:\python这种不含中文的文件夹就好了,pip就在里面,下面来说当下载好了python安装包之后...
  • 下面()组命令,将变量count值赋值为1 正确答案: B 你的答案: B (正确) DIM@count=1 count=1 DECLARE @count SELECT @count=1 DECLARE count SELECT count=1 DIM @count SELECT @count=1 ...
  • 变量a给出下面定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数 正确答案: D 你的答案: D(正确) int *a[10]; int (*a)[10]; int (*a)(int); int (*a[10])(int); int (*a...
  • C++变量的声明与定义

    千次阅读 2016-12-31 20:17:48
    欢迎到我的新博客访问原文链接:http://www.61mon.com/index.php/archives/163/  声明,是用以告诉编译器类型及其细节,本身并不涉及内存分配;...总体来说,它们的根本区别就是有无内存的分配,下面具体分析:in
  • 变量详解

    千次阅读 2018-01-28 01:56:10
    一、什么是变量 在我们上学时,我们就接触数据方程式;例如:已知x=1 y=x+1那么y等于多少,我们毫不犹豫的会算出来2,但是在shell中x就是变量名,那么对应的1就是变量值,在这里的等于号,在shell中称为赋值! x=1 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 470,521
精华内容 188,208
关键字:

下面变量定义正确的是