搜档网
当前位置:搜档网 › 变量定义与声明概念辨析与区别

变量定义与声明概念辨析与区别

变量定义与声明概念辨析与区别
变量定义与声明概念辨析与区别

关于定义与声明

例如:在主函数中

int main()

{

extern int A; //这是个声明而不是定义,声明A是一个已经定义了的外部变量

//注意:声明外部变量时可以把变量类型去掉如:extern A;

dosth(); //执行函数

}

int A; //是定义,定义了A为整型的外部变量(全局变量)

外部变量(全局变量)的"定义"与外部变量的"声明"是不相同的,外部变量的定义只能有一次,它的位置是在所有函数之外,而同一个文件中的外部变量声明可以是多次的,它可以在函数之内(哪个函数要用就在那个函数中声明)也可以在函数之外(在外部变量的定义点之前)。系统会根据外部变量的定义(而不是根据外部变量的声明)分配存储空间的。对于外部变量来讲,初始化只能是在"定义"中进行,而不是在"声明"中。所谓的"声明",其作用,是声明该变量是一个已在后面定义过的外部变量,仅仅是在为了"提前"引用该变量而作的"声明"而已。extern只作声明,不作定义。

用static来声明一个变量的作用有二:

(1) 对于局部变量用static声明,则是为该变量分配的空间在整个程序的执行期内都始终存在

(2) 外部变量用static来声明,则该变量的作用只限于本文件模块

*************************THE END*************************

**************************BEGIN**************************

Declarations and Definitions

As we'll see in Section 2.9 (p. 67), C++ programs typically are composed of many files. In order for multiple files to access the same variable, C++ distinguishes between declarations and definitions.

就像我们在2.9 (p. 67)节看到的一样,典型的C++程序通常会由好多文件组成。为了使不同的文件都可以访问同一个变量,C++会区分变量的声明(declarations)和定义(definitions)。

A definition of a variable allocates storage for the variable and may also specify an initial value for the variable. There must be one and only one definition of a variable in a program.

变量的定义(definitions)会为这个变量分配存储空间,并且可能会为其指定一个初始化的值。在程序里,一个变量必须有一个,也只能有一处定义(definitions)。

A declaration makes known the type and name of the variable to the program.

A definition is also a declaration: When we define a variable, we declare its name and type. We can declare a name without defining it by using the extern keyword. A declaration that is not also a definition consists of the object's name and its type preceded by the keyword extern:

变量的声明(declarations)会将变量的类型和名称传达给程序。当然,定义(definitions)也是一种声明:当我们定义一个变量的时候,我们当然也声明了他的名称和类型。我们可以通过使用“extern”关键字来声明(declarations)一个变量,而不用定义(definitions)它。声明(declarations)的形式就是在对象(变量)的名字和类型前面,加上关键字“extern”:

extern int i; // declares but does not define i

int i; // declares and defines i

An extern declaration is not a definition and does not allocate storage. In effect, it claims that a definition of the variable exists elsewhere

in the program. A variable can be declared multiple times in a program, but it must be defined only once.

带“extern”关键字的语句属于声明(declarations),不是定义(definitions),他不会给变量分配内存。实际上,它是说明程序中的某处包含这个变量的定义。一个变量可以在程序中被声明(declarations)多次,但是只能被定义(definitions)一次。

A declaration may have an initializer only if it is also a definition because only a definition allocates storage. The initializer must have storage to initialize. If an initializer is present, the declaration is treated as a definition even if the declaration is labeled extern:

声明(declarations)时你可以给变量初始化。但是一旦你这样做,那么这句话也就变成了定义(definitions),因为只有在定义(definitions)的时候才会为变量分配内存。初始化的时候必然要为初始值分配存储空间。如果你在声明(declarations)的时候同时初始化了变量,即便“extern”关键字存在,这个语句也会认为是定义(definitions)。

extern double pi = 3.1416; // definition

Despite the use of extern, this statement defines pi. Storage is allocated and initialized. An extern declaration may include an initializer only if it appears outside a function.

不管有没有“extern”关键字存在,这条语句的作用也是定义(definitions)“pi”。变量已经被分配了内存,并且赋予了初始值。声明(declarations)只有在一种情况下可以被初始化,那就是当他被放置在函数外部的时候。Because an extern that is initialized is treated as a definition, any subseqent definition of that variable is an error:

由于包含初始化的声明(declarations)语句会被认为是定义(definitions),所以如下的用法会被认为是错误的:

extern double pi = 3.1416; // definition

double pi; // error: redefinition of pi

Similarly, a subsequent extern declaration that has an initializer is also an error:

同样的,定义(definitions)后再使用同样的声明(declarations)也是错误的:

extern double pi = 3.1416; // definition

extern double pi; // ok: declaration not definition

extern double pi = 3.1416; // error: redefinition of pi

The distinction between a declaration and a definition may seem pedantic but in fact is quite important.

声明(declarations)和定义(definitions)之间的区别看似有些卖弄学问的

嫌疑,但是其实是非常重要的。

Note In C++ a variable must be defined exactly once and must be defined or declared before it is used.

笔记在C++里,变量必须被定义一次,最多一次,至少一次,而且必须在使用前定义(definitions)或者声明(declarations)。

Any variable that is used in more than one file requires declarations that are separate from the variable's definition. In such cases, one file will contain the definition for the variable. Other files that use that same variable will contain declarations for but not a definition of that same variable.

任何一个在多个文件中都要用到的变量都需要在没有其定义(definitions)的文件里对其进行声明(declarations)。在这样的情况下,一般一个文件会包含该变量的定义(definitions)。其他用到该变量的文件就会包含该变量的声明(declarations),而不是定义(definitions)。

*************************THE END*************************

**************************BEGIN**************************

Declaration reforms programs to know the called function,whereas definition let the compiler allocate a certain entity for the function.A function could be declared many times while definition is unique.A definition must contain a function body:{/.../}

*************************THE END*************************

**************************BEGIN**************************

小谈声明(Declaration)和定义(Definition)

-----written by kernelxu(kernelxu@https://www.sodocs.net/doc/9113907599.html,)

-----大部分内容来自博客小鱼研发手记的文章《变量的定义和声明的差别》

(https://www.sodocs.net/doc/9113907599.html,/leven/archive/2005/06/16/44793.aspx)

今天读到林锐的书《高质量C++/C编程指南》,对其中的声明和定义内容颇有微辞。声明(Declaration)用于说明每个标识符的含义,而并不必为每个标识符预存储空间。预留存储空间的声明称为定义(Definition)。声明的形式为:声明说明符声明符声明符是由存储类说明符和类型说明符组成的。

1、变量的声明有两种情况:一种是需要建立存储空间的。

例如:int a 在声明的时候就已建立了存储空间。

2、另一种是不必建立存储空间。

例如:extern int a 其中变量a是在别的文件中定义的。

例一:

Declaration.

A construct which associates attributes to a variable name or function. No storage is reserved. For example:

extrn int a;

extrn char c;

variable declaration A structure decleration could look like:

Definition.

Variable definition is a declaration with storage allocation.

struct per_rec

{

int age;

char

*surname;

char

*firstname;

};

int a;

char c;

struct per_rec

person;

A construct which specifies the name,parameters and return type of a function.

For example a function definition would be:

long sqr(int num)

{

return(num*num);

}

前者是"定义性声明(defining declaration)"或称为"定义(definition)",而后者是"引用性声明(referncing declaration)" 。从广义的角度来讲声明中包含着定义,不过并非所有的声明都是定义,例如:int a 他既是声明,同时又是定义。然而对于extern a 来讲他只是声明不是定义。他能在同一源程式或不同的源程式中重复声明。一般的情况下我们常常这样叙述,把建立空间的声明称之为"定义",而把不必建立存储空间称之为"声明"。非常明显我们在这里指的声明是范围比较窄的,也就是说非定义性质的声明。

例如:在主函数中

int main()

{

int a; //这里是定义(分配空间的声明),他不能重复出现

//这里若写extern int a;或int a;在VC6.0中编译均报错重复定义

//(redefinition)

//这里写int a;在DEV-C++中编译报错重复声明(redeclaration)

//这里写extern int a;在DEV-C++中编译、运行均无问题

extern int A; //这是个声明而不是定义,声明A是个已定义了的外部变量

//注意:声明外部变量时能把变量类型去掉如:extern A;

dosth(); //执行函数

}

int A; //是定义,定义了A为整型的外部变量

看来定义还是声明有时和编译器的处理也有关系。

外部变量的"定义"和外部变量的"声明"是不相同的,外部变量的定义只能有一次,他的位置是在所有函数之外,而同一个文件中的外部变量声明能是多次的,他能在函数之内(哪个函数要用就在那个函数中声明)也能在函数之外(在外部变量的定义点之前)。系统会根据外部变量的定义(而不是根据外部变量的声明)分配存储空间的。对于外部变量来讲,初始化只能是在"定义"中进行,而不是在"声明"中。所谓的"声明",其作用,是声明该变量是个已在后面定义过的外部变量,仅仅是在为了"提前"引用该变量而作的"声明"而已。extern 只作声明,不作所有定义。用static来声明一个变量的作用有二:

(1) 对于局部变量用static声明,则是为该变量分配的空间在整个程式的执行期内都始终存在。

(2) 外部变量用static来声明,则该变量的作用只限于本文件模块。

进一步内容可查看:https://www.sodocs.net/doc/9113907599.html,/c/declare.html

*************************THE END*************************

模板类声明和定义

如何组织编写模板程序 前言 常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WTL, 以及Boost的模板类,都能体会到这样的滋味:接口简单,操作复杂。 我在5年前开始使用模板,那时我看到了MFC的容器类。直到去年我还没有必要自己编写模板类。可是在我需要自己编写模板类时,我首先遇到的事实却是“传统”编程方法(在*.h 文件声明,在*.cpp文件中定义)不能用于模板。于是我花费一些时间来了解问题所在及其解决方法。 本文对象是那些熟悉模板但还没有很多编写模板经验的程序员。本文只涉及模板类,未涉及模板函数。但论述的原则对于二者是一样的。 问题的产生 通过下例来说明问题。例如在array.h文件中有模板类array: // array.h template class array { T data_[SIZE]; array (const array& other); const array& operator = (const array& other); public: array(){}; T& operator[](int i) {return data_[i];} const T& get_elem (int i) const {return data_[i];} void set_elem(int i, const T& value) {data_[i] = value;} operator T*() {return data_;} }; 然后在main.cpp文件中的主函数中使用上述模板: // main.cpp #include "array.h" int main(void) { array intArray; intArray.set_elem(0, 2); int firstElem = intArray.get_elem(0); int* begin = intArray; }

C语言中变量和函数的声明与定义

变量 在将变量前,先解释一下声明和定义这两个概念。声明一个变量意味着向编译器描述变量的类型,但并不为变量分配存储空间。定义一个变量意味着在声明变量的同时还要为变量分配存储空间。在定义一个变量的同时还可以对变量进行初始化。 局部变量通常只定义不声明,而全局变量多在源文件中定义,在头文件中声明。 局部变量 在一个函数的内部定义的变量是内部变量,它只在本函数范围内有效。自动变量auto 函数中的局部变量,其缺省格式是自动变量类型。例如,在函数体中int b, c=3。和auto int b, c=3。是等价的。 自动变量是动态分配存储空间的,函数结束后就释放。自动变量如不赋初值,则它的值是一个不确定的值。 静态局部变量static 静态局部变量是指在函数体内声明和定义的局部变量,它仅供本函数使用,即其他函数不能调用它。静态局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次函数调用时,该变量已有值,就是上一次函数调用结束时的值。 静态局部变量在静态存储区分配存储单元,在程序的整个运行期间都不释放。静态局部变量是在编译时赋初值的,即只赋初值一次。

在SDT编译器中,建议对静态局部变量赋初值,否则该静态局部变量的初值为不确定值。在其他编译器中,未初始化的静态局部变量的初值可能为零,这由具体的编译器所决定,使用前最好测试一下。 寄存器变量register 带register修饰符的变量暗示(仅仅是暗示而不是命令)编译程序本变量将被频繁使用,如果可能的话,应将其保留在CPU的寄存器中,以加快其存取速度。 对于现有的大多数编译程序,最好不要使用register修饰符。因为它是对早期低效的C编译程序的一个很有价值的补充。随着编译程序技术的进步,在决定哪些变量应当被存到寄存器中时,现在的C编译程序能比程序员做出更好的决定。 全局变量 在函数之外定义的变量称为外部变量,外部变量是全局变量,它可以为本文件中其他函数所共用。全局变量都是静态存储方式,都是在编译时分配内存,但是作用范围有所不同。 静态外部变量static 静态外部变量只能在本文件中使用。所以静态外部变量应该在当前源文件中声明和定义。 外部变量extern 定义函数中的全局变量时,其缺省格式是外部变量类型。外部变量应该在一个头文件中声明,在当前源文件中定义。外部变量允许其他文件引用。

变量的定义与声明

1.变量的定义 从前面的章节可以看出,程序中所有的东西几乎都有名字。然而字面量却是个例外,它没有名字。那么使用变量,我们就可以为某个值取名字了。实际上,我们是为系统内存中用于保存数据的某块空间取名字。 ANSI C规定:变量必须“先定义、后使用”,因此当用C定义变量时,不仅需要指定变量名,而且还必须告诉编译器其存储的数据类型,变量类型告诉编译器应该在内存中为变量名分配多大的存储单元,用来存放相应变量的值(变量值),而变量仅仅是存储单元的别名,供变量使用的最小存储单元是字节(Byte)。 由此可见,每个变量都占据一个特定的位置,每个存储单元的位置都由“地址”唯一确定并引用,就像一条街道上的房子由它们的门牌号码标识一样。即从变量中取值就是通过变量名找到相应的存储地址,然后读取该存储单元中的值,而写一个变量就是将变量的值存放到与之相应的存储地址中去。 由于变量的定义不是可执行代码,因此要求局部变量的定义必须位于用“{}包围的程序块”的开头,即在可执行代码的前面。比如: int lower_limit = 80; //定义lower_limit为整型变量 即在定义lower_limit为int类型数据时,系统就已经为变量lower_limit分配了存储单元。请注意区分变量名和变量值这两个不同的概念,其中,lower_limit为变量名,80为变量lower_limit的值,即存放在变量lower_limit的存储单元中的数据。 那么到底如何获得变量的地址呢?C语言使用“&(地址运算符)加变量名”的方式获取变量的地址,比如,&lower_limit就代表变量lower_limit的地址,详见后续相关章节的描述。 一个定义只能指定一种变量类型,虽然后面所带的变量表可以包含一个或多个该类型的变量: int lower_limit , upper_limit , sum; 但如果将一个定义语句中的多个变量拆开在多个定义语句中定义的话: int lower_limit; // lower_limit为数据下限 int upper_limit;// upper_limit为数据上限 int sum;// sum为求和的结果

(完整版)文化产业的定义_百度文库.

文化产业的概念 一、文化产业的定义 文化产业有种种不同的定义。就所提供产品的性质而言,文化产业可以被理解为向消费者提供精神产品或服务的行业;就其经济过程的性质而言,文化产业可以被定义为“按照工业标准生产、再生产、储存以及分配文化产品和服务的一系列活动”;在我们这样一个特定的制度环境中,文化产业除了具有一般产业属性之外,还具有某些特殊的社会和意识形态属性。这是我们理解文化产业的最基本的出发点。如果将文化产业臵于知识经济迅猛发展的当代世界经济背景下,我们又可看到,近十几年以来,文化产业已经发生了重大转变,越来越成为第三产业中最富现代意义、与高科技尤其数码技术发展最紧密结合的产业,并且越来越反过来影响和改变着传统文化产业的面貌。由此我们认为,现代文化产业实际上是一个巨大的“产业群”,它们奠立于大规模复制技术之上,履行最广泛传播的功能,经商业动机的刺激和经济链条的中介,迅速向传统文化艺术的原创和保存两个基本环节渗透:将原创变成资源开发,将保存变成展示,并将整个过程奠定在现代知识产权之上。 出于这样的理解,我们从行业门类上,把文化娱乐业、新闻出版、广播影视、音像、网络及计算机服务、旅游、教育等看做文化产业的主体或核心行业;把传统的文学、戏剧、音乐、美术、摄影、舞蹈、电影电视创作甚至工业与建筑设计,以及艺术博览 场馆、图书馆等看做文化产业正在争夺的前沿;把广告业和咨询业等看做是它成功开拓的边疆。 出于中国国情和第一本《中国文化产业蓝皮书》操作便利的需要,(我们还考虑到文化产业传统的行业管理归属,以上所说的产业门类将与文化部、新闻出版总署、国家广电总局、信息产业部、国家旅游局等主管部门的业务大致对应。按照时下的说法,这是一个“中等”的文化产业概念。应该说,文化产业在中国的发展还很不充分,其全部丰富性尚未充分展开,因此它的范围必定还会发生变化,相信这种变化将

生态产业的基本概念

生态产业的基本概念 生态产业是按生态经济原理和知识经济规律,以生态学理论为指导,基于生态系统承载能力,在社会生产活动中应用生态工程的方法。突出了整体预防、生态效率、环境战略、全生命周期等重要概念,模拟自然生态系统$建立的一种高效的产业体系,可持续发展是20世纪80年代提出的一个新概念。1987年世界环境与发展委员会在《我们共同的未来》报告中第一次阐述了可持续发展的概念。得到了国际社会的广泛共识。可持续发展是指既满足现代人的需求又不损害后代人满足需求的能力。换句话说就是指经济、社会、资源和环境保护协调发展,它们是一个密不可分的系统,既要达到发展经济的目的,又要保护好人类赖以生存的大气、淡水、海洋、土地和森林等自然资源和环境,使子孙后代能够永续发展和安居乐业。很明显生态产业不同于“传统产业”及“现代产业”,但又是“传统产业”及“现代产业”的继承和发展。 生态产业的理论基础是产业生态学。产业生态学也是一门“研究可持续能力的科学”产业生态学起源于20世纪80年代末。R.Frosch 等模拟生物的新陈代谢过程和生态系统的循环再生过程所开展的“工业代谢研究”。工业代谢是模拟生物和自然生态系统代谢功能的一种系统分析方法。其实现代工业生产过程就是一个将原材料能源和劳动力转化为产品和废物的代谢过程。1991年美国国家科学院与贝尔实验室共同组织了首次“产业生态学”论坛,对产业生态学的概念、内涵和方法以及应用前景进行了全面系统的总结。贝尔实验室的

C.Kumar认为:“产业生态学是对产业活动及其产品与环境之间相互关系的跨学科研究”,是继经济技术开发、高新技术产业开发发展的第3代产业。生态产业是包含工业、农业、居民区等的生态环境和生存状况的一个有机系统。通过自然生态系统形成物流和能量的转化,形成自然生态系统、人工生态系统、产业生态系统之间共生的网络。生态产业,横跨初级生产部门、次级生产部门、服务部门,包括生态工业、生态农业、生态服务业(第三产业)。 生态产业是按生态经济原理和知识经济规律组织起来的基于生态系统承载能力,具有高效的生态过程及和谐的生态功能的集团型产业。不同于传统产业的是生态产业将生产、流通、消费、回收、环境保护及能力建设纵向结合,将不同行业的生产工艺横向耦合,将生产基地与周边环境纳入整个生态系统统一管理,谋求资源的高效利用和有害废弃物向系统外的零排放。以企业的社会服务功能而不是产品或利润为生产目标,谋求工艺流程和产品结构的多样化,增加而不是减少就业机会,有灵敏的内外信息网络和专家网络,能适应市场及环境变化随时改变生产工艺和产品结构。工人不再是机器的奴隶,而是一专多能的产业过程的自觉设计者和调控者。企业发展的多样性与优势度,开放度与自主度,力度与柔度,速度与稳度达到有机的结合,污染负效益变为资源正效益。生产产业建设需要在技术、体制和文化领域开展一场深刻的革命。 1生态工业 中世纪以来,人本主义思潮的泛滥,导致了以蒸汽机的诞生与利

文化产业的概念和内涵

文化产业的概念和内涵 文化产业概念的形成与发展是一个历史的过程,至今国际上仍未形成对文化产业的统一定义。“从总体上看,文化产业可以区分为作为哲学政治观念的“理论-意识形态文化产业”和作为经济制度、发展模式的操作性应用性文化产业两大部分。”[10] 学院派的理论工作者主要关注观念形态的“理论-意识形态文化产业”研究,侧重于从哲学政治观念的意识形态角度得出文化产业的定义。最早提出这一观点的是法兰克福学派。1947年,法兰克福学派的阿多诺和霍克海默出版了《启蒙的辩证法》,书中首次提出了“文化工业”(Cultural Industry)的概念。这里的“industry”是作为单数来使用的,指的是作为意识形态生产的大众文化活动。不过,法兰克福学派对与“文化工业”相联系的大众文化却是持批评态度的。阿多诺和奥克海默认为,文化产品在工厂中凭借现代科学技术手段,以标准化、规格化的方式被大量生产出来,并通过电影、电视、广播、报纸、杂志等大众传播媒介传递给消费者,最终使文化不再扮演否定意识的角色,反而成为统治者营造满足现状的社会的控制工具。虽然法兰克福学派从艺术和哲学价值评判的双重角度对文化工业进行了否定性的批判,但法兰克福学派对于“文化元素一旦与现代科技结合形成工业体系,就会产生巨大的影响社会的力量”这一现象的揭示,不仅创造了一个新的概念,而且也预示着一个巨大的新产业的诞生。目前,文化产业与高科技产业一样,是迄今为止世界上最具有前景的两大产业之一[11]。 社会经济实践操作者和研究者更关注与当代世界经济发展紧密相关联的应用文化产业的探索,侧重于从经济学、社会学和管理学角度得出文化产业的定义。由此出发,世界各国对文化产业并没有统一的说法。不同国家或地区往往从自身优势和国家总体发展战略等实用功能方面来理解“文化产业”的定义,在总体上通用的文化产业总称之后,又有版权产业、内容产业、创意产业等主要概念。20世纪80年代,日本学者日下公人从经济学理论出发,对文化产业做出定义和阐释:“文化产业的目的就是创造一种文化符号,然后销售这种文化和文化符号”。这个定义既体现了文化与经济的结合,也体现了哲学、心理学与经济学的结合。20世纪90年代,美国人用“版权产业”来说明文化产业的状况,将文化产业视为“可商品化的信息内容产品业”。其“版权产业”分为核心版权产业、部分版权产业、分销版权产业、版权相关产业等。1997年,芬兰在《文化产业最终报告》中,将文化产业定义为“基于意义内容的生产活动”。它强调内容生产,而不再提工业标准,称“内容产业”,包括建筑、艺术、书报刊、广电、摄影、音像制作分销、游戏及康乐服务等。英国政府将文化产业称为创意产业,是指“那些发源于个人创造力、技能和天分,能够通过应用知识产权创造财富和就业机会的产业。”[12]它强调创造者个人的创造力,同时又倾向于各国政策性的设计、规划和推动。其范围包括广告、建筑、艺术及古玩市场、工艺品、时尚设计、电影与音像、互动性休闲软件、音乐、表演艺术、出版业、软件与计算机服务业、电视广播等13个行业。作为社会经济实践操作的文化产业是一个总括性、包容性的综合概念。在英语中变成了复数(Cultural Industries),它是以产业或产品对象的总的“文化”的性质作出的分类。“从当代应用文化产业来看,文化产业具有一般产业所必备的某些属性。就其所提供产品的性质而言,文化产业可以被理解为向消费者提供精神产品或服务的行业;就其经济过程而言,联合国教科文组织把文化产业界定

变量声明、关键字和类型

模块三变量声明、关键字和类型 模块三变量声明、关键字和类型 (1) 1. 基本语法元素 (2) 1.1. 注释 (2) 1.2. 分号 (2) 1.3. 语句块(block) (3) 1.4. 空白 (4) 2. 标识符 (4) 3. Java关键字 (5) 4. 基本Java数据类型 (5) 4.1. 逻辑型──boolean (6) 4.2. 字符型──char (6) 4.3. 文本类──String (7) 4.4. 整数型──byte, short, int, long (7) 4.5. 浮点数──float和double (8) 5. 变量、声明和赋值 (8) 6. 引用(Reference)类型 (9) 6.1. 创建一个新类型 (9) 6.2. 创建并初始化一个对象 (10) 6.3. 存储器分配和布局 (10) 6.4. 引用类型的赋值 (11) 6.5. 值传递 (12) 6.6. this引用 (14) 7. Java编码约定 (15) 8. 练习:使用对象 (16) 8.1. 创建一个类和相应的对象 (16) 8.2. 检验引用赋值 (16) 9. 检查你的进度 (17)

本模块阐述了在Java技术中使用的基本元素,包括变量、关键字、原始类型和类类型。 完成本模块的学习后,你应该能够: -区分有效和无效标识符 -识别Java技术关键字 -列出八个原始类型 -为数字类型和文本类型定义文字值 -解释术语class、object、member variable和reference variable -为一个简单的包含原始成员变量的类创建一个类定义 -声明类类型变量 -使用new构造一个对象 -描述缺省初始化 -使用点符号访问一个对象的成员变量 -描述一个引用变量的意义 -描述分配类类型变量的结果 3.1 基本语法元素 3.1.1 注释 注释是程序员用来标记、说明程序的。编译器会忽略注释中的内容,注释中的内容不会对程序的运行产生任何影响。Java语言允许三种风格的注释: // 单行注释 /* 多行注释 */ /** 文档注释 */ 3.1.2 分号 在Java编程语言中,语句是一行由分号(;)终止的代码。 例如 totals=a+b+c+

C语言的变量声明与定义的区别

从编译原理上来说,声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存。 对于下面的两句代码: void Func() { int a; int b=1; a=0; } 对于第一行代码,编译器不会做任何事,它不会为它在栈中分配一点东西,直到第三句, a=0;时,编译器才会将其压入栈中。而对于int b=0;这一句,编译器就会生成一条指令,为它赋值。如果反汇编,看到的代码可能是这样的: push 1; push 0; 当然,并不一定编译器就会样做,也有可能在声明int a时,编译器就会把一个废值入栈,到第三条再为其赋值,这要看编译器的具体取舍,所以,声明不一定不是定义,而定义一定是定义。 但是,下面的声明,一定仅仅是声明: extern int a; 这表时,有一个int变量a,它一定是在另外其他地方定义的,所以编译器此时一定不会做什么分配内存的事,因为它就是声明,仅仅表明下面的代码引用了一个符号,而这个符号是int类型的a而已。 变量的声明,其实就是一个空的东西,在C中就相当与一个空的指针,它什么也没有指向,没有任何实际的意义,例如int a。 而变量的定义,就不一样了,它是在内存中指定了一定的空间,一旦定义一个变量,系统自动给它分配一定的内存空间。它是有一定的实际意义的。例如int a=10。 两者区别: 声明不为变量分配空间,而定义为变量分配空间 因此同一个变量的声明可以出现多次,而只能定义一次 中函数的声明是可以重复的,但是变量却不可以。对于变量的声明都会分配内存空间,只是这部分内存空间里存放的是随机值,直到被定义之后将赋予相应的值。

产业价值再定义(精)

产业价值再定义 在照明市场里,独特的天花板文化屏蔽了来自海外巨头的激烈竞争,本土企业要真正赢得本土市场,还需要独特的模式支撑。从传统的照明产品提供商转型为照明解决方案提供者,雷士实现了价值链上的角色升级。 来源:21世纪商业评论作者:王婷从1879年爱迪生发明电灯开始,电灯成为了人类照明的主要工具,这不但由此缔造了世界级企业GE,也由此撬动起一个庞大的为人类带来光明的照明产业。 不过与众多海外巨头先天占据先机,并由此形成持续优势壁垒的产业不同,照明产业的独特性还受制于特殊的“本土化要素”——不同区域市场里,由于建筑物结构和天花板高度所带来的差异,延缓了产业巨头全球化的步伐。想象一下,在欧美高堂阔院的建筑风格下相得益彰的华贵吊灯,如果挂在大多数中国家庭的两居室中该显得多么地局促不安。因此,照明产业的跨国巨头,它们的注意力则放在了自己更擅长的事情——光源的研发上,毕竟光源之于灯具,好比CUP之于电脑,它是灯具的“心”。 因此,独特的天花板文化屏蔽了来自海外巨头的激烈竞争,让中国企业在照明市场里凭借着对本土市场的深刻理解得以顺利地占有一席之地。然而,这对于雷士来说,还不足够。它们将对市场的理解推进了一步:不仅仅要为消费者需求制造相应型号或种类的灯具,而是应该指引消费者灯具应该在怎样的环境下使用,并由此为消费者开发出满足其需求的各种型号或种类的灯具。他们在中国市场中定义和发掘“商业照明”这一细分市场,并且通过对渠道的开发、利用和盈利模式的修正,雷士从传统的照明产品提供商转型为照明解决方案的提供者,实现了价值链上的角色升级。 还原以客户为中心 人类对光明的需求,不断推动着照明行业的发展。目前,电光源仍然是世界照明系统的主体,自其发明以来已经历了130多年的发展,目前其品种已超过3000种,规格达到5万多种。由于光源是让灯实现照明功能的主体,因此,很长一段时间以来,世界主要照明企业都将研发的重点放在光源研发和创新上。而随着节能环保趋势的日益增强,占领优质光源的研发先机,也成为很多照明企业占据行业高位的契机。 成立于1891年的飞利浦公司,最初就是一家从事碳灯丝光源生产的厂家,它的主要客户中,有一些早期的电力公司,他们在自己的能源供应合同里包含了光源的提供。经过100多

变量的声明和定义之间的区别和联系

变量的声明和定义之间的区别和联系 前者是“定义性声明(defining declaration)”或者称为“定义(definition)”,而后者是“引用性声明(referncing declaration)”,从广义的角度来讲声明中包含着定义,即定义是声明的一个特例,所以并非所有的声明都是定义,例如:int a 它既是声明,同时又是定义。然而对于 extern a 来讲它只是声明不是定义。一般的情况下我们常常这样叙述,把建立空间的声明称之为“定义”,而把不需要建立存储空间的声明称之为“声明”。很明显我们在这里指的声明是范围比较窄的,即狭义上的声明,也就是说非定义性质的声明,例如:在主函数中: int main() { extern int A; //这是个声明而不是定义,声明A是一个已经定义了的外部变量 //注意:声明外部变量时可以把变量类型去掉如:extern A; dosth(); //执行函数 } int A; //是定义,定义了A为整型的外部变量 外部变量的“定义”与外部变量的“声明”是不相同的,外部变量的定义只能有一次,它的位置是在所有函数之外,而同一个文件中的外部变量声明可以是多次的,它可以在函数之内(哪个函数要用就在那个函数中声明)也可以在函数之外(在外部变量的定义点之前)。系统会根据外部变量的定义(而不是根据外部变量的声明)分配存储空间的。对于外部变量来讲,初始化只能是在“定义”中进行,而不是在“声明”中。所谓的“声明”,其作用,是声明该变量是一个已在后面定义过的外部变量,仅仅是为了“提前”引用该变量而作的“声明”而已。extern 只作声明,不作任何定义。 (我们声明的最终目的是为了提前使用,即在定义之前使用,如果不需要提前使用就没有单独声明的必要,变量是如此,函数也是如此,所以声明不会分配存储空间,只有定义时才会分配存储空间。)

C语言中变量的声明和定义的关系

C语言中变量的声明和定义的关系 在英文里有两个词涉及这个问题:declare 和 define,在中文中这两个词都可以翻成“定义”,但在C语言中他们有不同的意义;让我们称declare=声明,define=定义。 “声明(declare)”是用于定义一个变量的类型;“定义(define)”是用于定义一个变量所占用的存储;显然,一个变量的类型可以定义多次,只要他们不互相矛盾即可;而一个变量的存储只能定义一次,否则程序如何用一个变量名访问多于一个的存储空间呢? 每次引用一个变量时,引用变量的语句行之前必须出现该变量的声明,该声明可以是直接出现在这个语句行所在的源文件中,或出现在一个头文件中,该源文件用include包含这个头文件。 一个项目中可以有多个源文件,但在所有的源文件中只允许出现一次对某个变量的定义。 这里借用“新手园地”中小罗纳耳朵的一个问题作为例子: 我用Keil写程序时,子程序里需要用到定义一个数组 array[]={0x01,0x02} 放在main函数里定义会提示array未定义! 但是如果放在头文件config.h里面定义为: extern code unsigned CHAR array[]={0x01,0x02}; 结果编译时出现 MULTIPLE PUBLIC DEFINITIONS定义。但是我的头文件里面已经用预处理

命令了 #ifndef __CONFIG_H__ #define __CONFIG_H__ 头文件的内容 #endif 为什么还会出现这种重复定义的错误? 他的错误是,下面这行是定义array的存储,而他又把这行放到了头文件config.h中,等于是在多个源文件中重复地定义array的存储: extern code unsigned CHAR array[]={0x01,0x02}; 正确的做法是在头文件中用这样的声明语句(必须加extern,否则变成定义存储了):extern code unsigned CHAR array[]; // 声明array是一个外部变量 然后在某个源文件中加入这样的语句(此处不必加extern): code unsigned CHAR array[] = {0x01, 0x02}; // 定义array的存储

水利行业相关定义与概念

国家县级以上行政区划: 全国县级以上行政区划共有:23个省,5个自治区,4个直辖市,2个特别行政区;50个地区(州、盟);661个市,其中:直辖市4个;地级市283个;县级市374个;1636个县(自治县、旗、自治旗、特区和林区);852个市辖区。 总计:省级34个,地级333个,县级2862个。 水务一体化: 水务,即涉水事务。水务一体化即涉水事务统一管理。亦即对水资源的开发、利用、配置、节约、保护实行全方位、全过程的统一管理。它是加快水利管理体制改革的一种产物。 水平衡测试: 水平衡测试是对用水单位进行科学管理行之有效的方法,也是进一步做好城市节约用水工作的基础。水平衡也称水量平衡,是指在一个确定的用水系统内,输入水量之和等于输出水量之和。水资源变化量(△S)=|P+R入-E-R出| 降水(P),径流流入(R入)。蒸发 (E),径流流出(R出)。 水平衡测试是加强用水科学管理,最大限度地节约有水和合理用水的一项基础工作。它涉及到用水单位管理的各个方面,同时也表现出较强的综合性、技术性。通过水平衡测试应达到以下目的: 掌握单位用水现状。如水系管网分布情况,各类用水设备、设施、仪器、仪表分布及运转状态,用水总量和各用水单元之间的定量关系,获取准确的实测数据。 对单位用水现状进行合理化分析。依据掌握的资料和获取的数据进行计

算、分析、评价有关用水技术经济指标,找出薄弱环节和节水潜力,制订出切实可行的技术、管理措施和规划。 找出单位用水管网和设施的泄漏点,并采取修复措施,堵塞跑、冒、滴、漏。 健全单位用水三级计量仪表。既能保证水平衡测试量化指标的准确性,又为今后的用水计量和考核提供技术保障。 可以较准确地把用水指标层层分解下达到各用水单元,把计划用水纳入各级承包责任制或目标管理计划,定期考核,调动各方面的节水积极性。 建立用水档案,在水平衡测试工作中,搜集的有关资料,原始记录和实测数据,按照有关要求,进行处理、分析和计算,形成一套完整详实的包括有图、表、文字材料在内的用水档案。 通过水平衡测试提高单位管理人员的节水意识,单位节水管理节水水平和业务技术素质。 为制定用水定额和计划用水量指标提供了较准确的基础数据。 节水型社会建设: 节水型社会是倡导人们在生活和生产过程中,提高对水资源的节约和保护意识,并将其贯穿于水资源开发利用的各个环节,全面实行节约用水和高效用水的社会。在政府、用水单位和公众的参与下,以完备的管理体制、运行机制和法律体系为保障,通过法律、行政、经济、技术和工程等措施,结合社会经济结构的调整,实现全社会的合理用水和高效益用水。 1998年,为了加大节水工作的力度,水利部提出了开展跨世纪节水行动。从2000年开始,这项工作得到了财政部的重视和支持,将跨世纪节水行动项目

变量声明和定义的区别

变量声明和定义的区别 我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点对你受益) 变量的声明有两种情况: 1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。 2、另一种是不需要建立存储空间的。例如:extern int a 其中变量a是在别的文件中定义的。 前者是“定义性声明(defining declaration)”或者称为“定义(definition)”,而后者是“引用性声明(referncing declaration)”,从广义的角度来讲声明中包含着定义,即定义是声明的一个特例,所以并非所有的声明都是定义,例如:int a 它既是声明,同时又是定义。然而对于extern a 来讲它只是声明不是定义。一般的情况下我们常常这样叙述,把建立空间的声明称之为“定义”,而把不需要建立存储空间的声明称之为“声明”。很明显我们在这里指的声明是范围比较窄的,即狭义上的声明,也就是说非定义性质的声明,例如:在主函数中: int main() { extern int A; //这是个声明而不是定义,声明A是一个已经定义了的外部变量 //注意:声明外部变量时可以把变量类型去掉如:extern A; dosth(); //执行函数 } int A; //是定义,定义了A为整型的外部变量 外部变量的“定义”与外部变量的“声明”是不相同的,外部变量的定义只能有一次,它的位置是在所有函数之外,而同一个文件中的外部变量声明可以是多次的,它可以在函数之内(哪个函数要用就在那个函数中声明)也可以在函数之外(在外部变量的定义点之前)。系统会根据外部变量的定义(而不是根据外部变量的声明)分配存储空间的。对于外部变量来讲,初始化只能是在“定义”中进行,而不是在“声明”中。所谓的“声明”,其作用,是声明该变量是一个已在后面定义过的外部变量,仅仅是为了“提前”引用该变量而作的“声明”而已。extern 只作声明,不作任何定义。 (我们声明的最终目的是为了提前使用,即在定义之前使用,如果不需要提前使用就没有单独声明的必要,变量是如此,函数也是如此,所以声明不会分配存储空间,只有定义时才会分配存储空间。) 用static来声明一个变量的作用有二: (1)对于局部变量用static声明,则是为该变量分配的空间在整个程序的执行期内都始终存在。 (2)外部变量用static来声明,则该变量的作用只限于本文件模块。

变量定义与声明的区别(精)

变量定义与声明的区别我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下: 变量的声明有两种情况: (1 一种是需要建立存储空间的(定义、声明。例如:int a在声明的时候就已经建立了存储空间。 (2 另一种是不需要建立存储空间的(声明。例如:extern int a其中变量a是在别的文件中定义的。前者是"定义性声明(defining declaration"或者称为"定义(definition",而后者是"引用性声明(referncing declaration"。从广义的角度来讲声明中包含着定义,但是并非所有的声明都是定义,例如:int a它既是声明,同时又是定义。然而对于extern a来讲它只是声明不是定义。一般的情况下我们常常这样叙述,把建立空间的声明称之为"定义",而把不需要建立存储空间称之为"声明"。很明显我们在这里指的声明是范围比较窄的,也就是说非定义性质的声明。例如:在主函数中 int main( { extern int A; //这是个声明而不是定义,声明A是一个已经定义了的外部变量 //注意:声明外部变量时可以把变量类型去掉如:extern A; dosth(; //执行函数 } int A; //是定义,定义了A为整型的外部变量(全局变量外部变量(全局变量的"定义"与外部变量的"声明"是不相同的,外部变量的定义只能有一次,它的位置是在所有函数之外,而同一个文件中的外部变量声明可以是多次的,它可以在函数之内(哪个函数要用就在那个函数中声明也可以在函数之外(在外部变量的定义点之前。系统会根据外部变量的定义(而不是根据外部变量的声明分配存储空间的。对于外部变量来讲,初始化只能是在"定义"中进行,而不是在"声明"中。所谓的"声明",其作用,是声明该变量是一个已在后面定义过的外部变量,仅仅是在为了"提前"引用该变量而作的"声明"而已。extern只作声明,不作定义。用static来声明一个变量的作用有二: (1 对于局部变量用static声明,则是为该变量分配的空间在整个程序的执行期内都始终存在 (2 外部变量用static来声明,则该变量的作用只限于本文件模块

C++声明、定义、变量、数据类型专题

本文作者:黄邦勇帅 本文是学习C++最基础的内容,因此应对其熟练掌握,本文主要介绍了声明与定义的区别,C++中有关变量及数据类型的描述,其中由浅入深的介绍了复杂声明的分析方法,本文内容由浅入深,内容较为全面。 本文内容完全属于个人见解与参考文现的作者无关,其中难免有误解之处,望指出更正。 声明:禁止抄袭本文,若需要转载本文请注明转载的网址,或者注明转载自“黄邦勇帅”。 主要参考文献: 1、C++.Primer.Plus.第五版.中文版[美]Stephen Prata著孙建春韦强译人民邮电出版社2005年5月 2、C++.Primer.Plus.第四版.中文版Stanley B.Lippman、Barbara E.Moo著李师贤等译人民邮电出版社2006年3月 3、C语言:标准与实现volume 1 作者不详,前言是“姚新颜”写的可能就是作者,出版社不详,2004年8月 4、《程序设计语言C》中华人民共和国国家标准GB/T 15272-94 1994年12月7日发布出版社不详 5、《C++程序设计原理与实践》[美]Bjarne Stroustrup著王刚刘晓光吴英李涛译机械工业出版社2010年6月 6、《C++程序设计语言》特别版[美]Bjarne Stroustrup著裘宗燕译机械工业出版社2010年3月 7、《C和指针》第二版[美] Kenneth A.Reek著徐波译人民邮电出版社出版日期不详 8、《C陷阱与缺陷》Andrew Koenig 著高巍译王昕审校人民邮电出版社出版日期不详 9、《C专家编程》作者、出版社、出版日期不详 10、《C语言核心技术》Peter Prinz εTony Crawford著O’Reilly Taiwan公司译机械工业出版社2007年8月 11、《ANSI C标准详解》作者、出版社、出版日期不详 第3部分声明、定义、变量、数据类型专题 关键概念 1、对象:指的是某种类型所占据的一片连续的内存单元,注意:对象不仅仅指的是一片连续的内存单元,而且这片内 存区域已经指定了某种类型。 2、标识符:标识符就是一个名字,使用标识符主要是与C++中的关键字相区别,本文所讲的名字和标识符都是指的标 识符。 一、变量、类型简单理解请参考《C++整型、字符型、浮点型专题》相关内容。 二、变量、对象、实体深度理解 1、注意:本文中的对象与类的对象是两个概念,应区别对待。 2、对象:指的是某种类型所占据的一片连续的内存单元,注意:对象不仅仅指的是一片连续的内存单元,而且这片内 存区域已经指定了某种类型。 3、变量:变量其实就是命名后的对象,也就是说变量是为指定类型的连续的内存单元(即对象)取的一个名字。一块连 续的内存单元,若我们使用内存的地址编号来访问这块内存单元,这样会让程序很难让人理解,因此就有必要为一块保存特定类型的连续的内存单元(即对象)取一个名字,这个名字就是我们所说的变量。 4、实体:本文中所说的实体就是变量的另一个名字,一般情况下变量指的是像整型,浮点型这些类型的对象,按变量 的概念,变量还可以是函数名,指针名,数组名等,为了描述方便,有时会使用实体一词。 5、从以上概念可以看出,变量、对象和实体三者的没有什么本质的区别。 三、类型深度理解 1、类型与内存 内存中的比特值的含义完全决定于这块内存单元所表示的类型,保存在计算机中的值是一些二进制比特,这些二进制比特对于计算机来讲,它并不知道代表什么意义,只有当我们决定如何解释这些比特时才有意义,比如65或字符’a’在内存中的比特值是相同的,若将比特值解释为int型,则他是一个十进制数,若解释为char型,则是这符a,因此在内存单元中的数据应具有一个类型,当类型确定后就能对其中的数据作出正确的解释了。 2、类型的作用 1)、类型决定了可以将什么数据赋给对象(比如整数3可以赋给int型,”dd”可以赋给string型等) 2)、类型决定了可以对该对象进行什么样的操作(比如可以对int型的变量或常量进行加、减、乘、除等操作,不能 进字符串变量或常量进行加、减、乘、除等操作)。 3)、类型还决定了对象的内存大小、布局和取值范围 3、每个名字(或变量,变量就是命名后的对象,因此一个变量就是一个名字)、表达式都应有一个类型,这个类型决定

变量声明表

在回答你的问题之前,有必要对变量声明表有一个基本了解。在STEP7中有两种用来定义符号地址的表格形式:符号表(共享符号)和变量声明表(局域符号),其本质都是为了建立绝对地址与符号地址之间的内在联系,但表格针对的对象不同。共享符号是整个程序所使用的共同符号(用于全局符号定义的表为符号表);而局域符号是某一特定逻辑快(OB、FB、FC等)所使用的临时性标记,只能在特定的逻辑块中进行临时性定义。用于临时性的、局域符号定义的表被称为变量声明表,又称局部变量声明表。 局部变量声明表分为参数(输入参数IN、输出参数OUT、输入/输出参数IN_OUT)和局部变量。局部变量又包括静态变量(STAT)和临时变量(TEMP)两种。参数可在调用块(逻辑块,块中的形参)和被调用块(功能FB有自己自动生成的背景数据块DI,而功能FC只能使用共享数据块,提供调用块的形参的实际参数值,与调用块形式参数一一对应,数据类型必需一致)。静态变量和临时变量是仅供逻辑块本身使用数据,不能用作不同程序块之间的数据接口。通过以上分析,我们知道所谓局部变量(包括静态变量和暂态变量)都是指对特定的逻辑块而言的,局部变量只是在它所在的块中有效,离开具体的逻辑块谈上述变量是没有意义的,你不能在其他块中调用利用变量(包括静态变量和暂态变量),这是与共享符号不一致的,共享符号可以被任意块

调用。在每个逻辑块的前上面部分就是变量声明表的区域,在变量声明表中,用户声明本块中专用的变量,即局部变量包括块的形参和参数的系统属性。你可以在不同的块中使用相同的局部变量符号不会产生冲突。 静态变量(STAT)在PLC运行期间始终被存储。S7 将静态变量定义在背景数据块(针对FB而言,FC和OB无静态变量),当被调用块运行时,能读出或修改静态变量;被调用块结束后,静态变量保留在数据块中; 临时变量(TEMP)是一种在块执行时,用来暂时存储数据的变量,这些数据存储在CPU工作存储区的局部数据堆栈(L 堆栈)中。临时变量可以在组织快OB、功能FC和功能块FB中使用,当块执行时它们被用来临时存储数据,一旦块执行介绍,堆栈重新分配,临时变量中的数据将丢失。 在程序块中,如果在块的变量声明表中有局部变量符号,编程是STEP7软化自动在局部变量名前加一个“#”号,如果要访问与局部变量重名的全局变量(在符号表中定义),则全局变量必须使用双引号(如“Symbol”)

行研基础:行业的概念及分类

行研基础:行业的概念及分类 一、行业的概念 (一)行业的定义 根据《国民经济行业分类》国家标准,行业是指从事相同性质的经济活动的所有单位的集合。行业的发展必然遵循由低级的自然资源掠夺性开采利用和低级的人工劳务输出,逐步转向规模经济、科技密集型、金融密集型、人才密集型、知识经济型,从输出自然资源,逐步转向输出工业产品、知识产权、高科技人才等。 行业的英文解释是walks of life,简而言之,就是职业的类别。解释行业本身所处的发展阶段及其在国民经济中的地位,分析影响行业发展的各种因素以及判断对行业的影响力度,预测并引导行业的未来发展趋势,判断行业投资价值,揭示行业风向,为各组织机构提供投资决策或投资依据。 (二)行业与企业、产业的关系 行业一般是指其按生产同类产品或具有相同工艺过程或提供同类劳动服务

划分的经济活动类别,如汽车行业、服装行业、机械行业、医药行业、家电行业、快递行业等,是反映以生产要素组合为特征的各类经济活动。 企业一般是指以营利为目的,运用各种生产要素(土地、劳动力、资本、技术和企业家才能等),向市场提供商品或服务,实行自主经营、自负盈亏、独立核算的法人或其他社会经济组织。 产业是指具有某种同类属性的经济活动的集合或系统,是对各类行业在社会生产力布局中发挥不同作用的称谓。1985年,我国国家统计局明确把产业划分为三大产业。把农业(包括林业、牧业、渔业等)定为第一产业,把工业(包括采掘业、制造业、自来水、电力、蒸汽、煤气)和建筑业定为第二产业。把第一〔第二产业以外的各行业定为第三产业。这是我国政府关于经济结构改革的一项重大决策与举措。 总体来说,企业是市场经济活动的主要参与者,是基础单位,由提供同类型的产品和服务的企业共同组成行业,多种行业形成了产业。

产业第三产业定义(精)

什么是产业?人们的认识水平总是随着社会生活的发展而不断发展的,对于产业的认识也经历了一个过程。“产业”一词最早由重农学派提出,特指农业。在人类迈入资本主义大生产时代后,产业主要是指工业,在英文中,产业与工业的表示方式都是industry。马克思主义政治经济学曾将产业表述为从事物质性产品生产的行业,并被人们长期普遍接受为惟一的定义,也正是因为“物质性生产行业”的定位,广电媒体始终没有被赋予产业的属性,而一直尊居“事业的宝座”。20世纪50年代以后,随着服务业和各种非生产性产业的迅速发展,产业的内涵发生了变化,不再专指物质产品生产部门而是指“生产同类产品(或服务)及其可替代品(或服务)的企业群在同一市场上的相互关系的集合”。[6]人们也开始对广电媒体进行重新定位,把它当作一个产业进行经营,经营的内容包括“广告经营、节目经营、信息经营、技术经营、劳务经营、混合经营”。[7]因而,可以从产业的角度给广电产业下个定义:即生产、制作、经营、播放以广播电视节目(信息)或提供广电文化服务为主的企业组织及其在市场上的相互关系的集合。同时,“‘产业’是一个居于微观经济的细胞(企业)和宏观经济的整体(国民经济)之间的一个‘集合概念’,它既是同一属性的企业的集合,也是根据某一标准对国民经济进行划分的一部分。”[8]根据现行产业的划分标准,广电业属于第三产业。 产业有广义和狭义之分。广义上看,产业指国民经济的各行各业。从生产到流通、服务以至于文化、教育,大到部门,小到行业都可以称之为产业。从狭义上看,由于工业在产业发展中占有特殊位置,经济发展和工业化过程密切相关,产业有时指工业部门。产业经济学中研究的产业是广义的产业,泛指国民经济的各行各业。~~ 产业的概念介于微观经济细胞(企业和家庭消费者)与宏观经济单位(国民经济)之间的若干“集合”。现代经济社会中,存在着大大小小的,居于不同层次的经济单位,企业和家庭是最基本的,也是最小的经济单位。整个国民经济又称为最大的经济单位;介于二者之间的经济单位是大小不同、数目繁多的,因具有某种同一属性而组合到一起的企业集合,又可看成是国民经济按某一标准划分的部分,这就是产业。

相关主题