定义和声明的区别,它们在头文件、源文件中的位置,extern的用法

本文详细探讨了C语言中定义和声明的区别,解释了extern关键字的用法,以及如何处理头文件中的声明和定义。强调头文件通常用于声明,避免全局变量和函数的多重定义链接错误。并提供了防止头文件多重包含的解决方法。
摘要由CSDN通过智能技术生成

1. 定义和声明的区别(变量,在被使用前必须被定义或声明)?

  • 声明用于向程序表明变量的类型和名字;
  • 定义本身也是声明,当定义变量时声明了它的类型和名字;
  • 变量必须且只能被定义一次,但是可以被声明多次;
  • 若想只声明变量而不定义它,就必须在变量类型前加extern关键字,并且不可以使用初始化式(即赋值表达式)。仅仅是声明而不定义变量时,系统不会分配存储空间。
  • 只有当extern声明位于函数外部(全局)时,才可以含有初始化式;
  • 以下是几个例子:
extern int i; // 带有extern关键字,且没有初始化式,所以仅仅声明了变量i,并没有定义它
int i; // 不含extern,所以定义并声明了变量i
extern double pi = 3.14; // 虽然有extern,但是有了初始化式,所以是定义并声明了变量pi


2. 定义和声明,哪些应写在头文件中,哪些应写在源文件中?

  • 大多数情况下,头文件用于声明而不是用于定义,同一个程序中有两个或以上文件含有同一个名称的全局变量的定义都会导致多重定义链接错误。因为头文件经常会包含在多个源文件中,因此不应该含有变量或函数的定义;<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值