变量定义

给你下面三个示例文件:kbi.h, kbi.c, other.c

kbi.h

  1. #ifndef __KBI_H_
  2. #define __KBI_H_
  3. #ifdef  __KBI_C_
  4. #define KBI_EXT
  5. #else
  6. #define KBI_EXT extern
  7. #endif
  8. KBI_EXT int a;
  9. KBI_EXT int b;
  10. KBI_EXT int c;
  11. #endif /* __KBI_H_ */

复制代码

kbi.c

  1. #define __KBI_C_
  2. #include "kbi.h"
  3. int get_a(void){
  4. return a;
  5. }

复制代码

other.c

  1. #include "kbi.h"
  2. int use_c(void){
  3. return c;
  4. }

复制代码

解释:
由于kbi.h是公共头文件,可以在多个C文件中用include包含。有了KBI_EXT这样的定义,就可以保证只在一个C文件(这里举例的是kbi.c)定义变量,而在其它C文件中只是引用。这样即方便变量的管理又可以避免重定义错误。

原文:http://www.amobbs.com/thread-5631875-1-1.html

时间: 2024-08-16 11:17:01

变量定义的相关文章

《Effective C++》之条款26:尽可能延后变量定义式的出现时间

<Effective C++> 条款26:尽可能延后变量定义式的出现时间 只要你定义了一个变量而其类型带有一个构造函数和析构函数,那么当程序的控制流到达这个变量定义式时,你便得承受构造成本:当这个变量离开作用域时,你便得承受析构成本.即使这个变量最终并未被使用,仍需耗费这些成本,所以你应该尽量避免这种情形. 对于"尽可能延后"的理解: 不只应该延后变量多的定义,直到非得使用该变量的前一刻为止,甚至应该尝试延后这份定义直到能够给它初始实参为止.如果这样,不仅能够避免构造(析构

PL/SQL——编程——变量定义

1.变量标量类型(scalar)复合类型(composite)参照类型(reference)lob(large object) --定义一个变长字符串v_ename VARCHAR2(10)--定义一个小数,范围-9999.99~9999.99v_sal NUMBER(6,2)--定义一个小数,并给初始值5.4,:=是plsql的赋值符v_sal2 NUMBER(6,2):=5.4--定义一个日期类型v_hiredate date--定义一个布尔量,不能为空,初始值为falsev_valid B

python变量定义

变量定义规则:1.可以由字母.数字.下划线组成2.第一个字符不能为数字3.不能使用系统保留关键字 约定规范:1.变量名有具体含义2.不能使用中文名(实际上Python支持中文变量名)3.不能使用拼音4.使用下划线分隔单词5.使用单词首字母大写(驼峰型)6.常量使用全大写字母标识

MySql中的变量定义

MySql中的变量定义 根据mysql手册,mysql的变量分为两种:系统变量和用户变量.但是在实际使用中,还会遇到诸如局部变量.会话变量等概念.根据个人感觉,mysql变量大体可以分为四种类型: 一.局部变量. 局部变量一般用在sql语句块中,比如存储过程的begin/end.其作用域仅限于该语句块,在该语句块执行完毕后,局部变量就消失了. 局部变量一般用declare来声明,可以使用default来说明默认值. 例如在存储过程中定义局部变量: drop procedure if exists

php-环境、变量定义与输出、变量用法

1.php环境 1.1lawp 1.2wamp l: linux  w: windows //系统 a: apache  a: apache //阿帕奇 m: mysql  m: mysql //数据库 p: php p: php //php 2.变量定义与输出 2.1定义与输出都得带$ 2.2 定义:$name="xxx"; 输出: echo $name; //输出变量 var_dump($name); //输出数组,并打印类型与长度 print_r($name); //输出数组 3

汇编入门之输入、输出、奇偶判断、多字节变量定义

原创文章,转载请注明:汇编入门之输入.输入.奇偶判断.多字节变量定义 1.入门参考 首先介绍一个非常好的汇编知识的索引网站:经典汇编语言教程 1.1 MOV CX,[BX] 加方框的意思是说以BX中的数据为地址寻址,将寻址得到的数据放在CX中 1.2 16位寄存器组 4个数据寄存器(AX.BX.CX和DX) 2个变址和指针寄存器(SI和DI) 2个指针寄存器(SP和BP) 4个段寄存器(ES.CS.SS和DS) 1个指令指针寄存器(IP) 1个标志寄存器(Flags) 1.3 DB 定义字节变量

c++ 变量 定义 声明

我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点对你受益) 变量的声明有两种情况: 1.一种是需要建立存储空间的.例如:int a 在声明的时候就已经建立了存储空间. 2.另一种是不需要建立存储空间的. 例如:extern int a 其中变量a是在别的文件中定义的. 前者是“定义性声明(defining declaration)”或者称为“定义(definition

&lt;28&gt;【了解】10-枚举类型介绍及定义+【掌握】11-枚举变量变量定义和使用+【掌握】13-typedef定义新的类型+【掌握】15-宏的概念及无参宏定义方法+【掌握】16-有参宏定义和使用方法+【掌握】17-应用:使用有参宏求最大值+【掌握】18-typedef和#define的区别

[了解]10-枚举类型介绍及定义 枚举类型: C语言提供了一个种类型,这种类型的变量的取值被限定在一定的范围之内了 枚举类型的定义: enum 枚举类型名{ 枚举值1,枚举值2,.... }; 举例: 定义一个变量,保存一周的第几天 enum weekday{ zhouyi,zhouer,zhousan,zhousi,zhouwu ,zhouliu,zhouri }; 定义iPhone手机的颜色 关于枚举类型元素的命名习惯 enum iColor{kIcolorWhite,kIcolorBlac

Go语言基础变量定义及初始化

package main import "fmt" func main(){ //变量定义 var v1 int var v2 string var v3 [10] int //数组 var v4 [] int //数组切片 var v5 struct{ f int } var v6 *int //指针 var v7 map[string] int //key 为string value为int的map var v8 func (a int) int //变量初始化 var var1

PHP变量定义和输出

php在定义变量和输出变量时,前面必须加$ 变量名区分大小写,函数不区分大小写,写代码时最好都是用小写,这样就不会出错了 变量定义: $name="小明"; 变量输出: echo($name);  //输出变量 var_dump($name);  //输出数组,打印类型和长度 print_r($name);   //输出数组 utf-8的编码下,一个中文字三个字符 gbk的编码下,一个中文二个字符 1 <!doctype html> 2 <html> 3 <