头文件定义并初始化变量的问题

原创 2017年01月03日 15:56:22

一个经典错误。
在a.h头文件中定义变量temp并初始化,即显式初始化。int temp = 0;

a.c b.c文件中都包含了a.h头文件,则在编译时会出现:multiple definition of `a’的错误。

a.h中定义变量temp,不初始化为0即为不显示初始化。

不显示初始化不出错原因:
—— 不显式的初始化,在C语言中(C++中不是这样的),则先假定为声明,多次声明是没错的,最后才是定义。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

[原]详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!

 [原]详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法! 2013-6-14阅读1892 评论3        以前写单片机程序时总是把所用函...
  • lw0249
  • lw0249
  • 2015年03月28日 11:56
  • 227

C/C++头文件与变量的声明和定义

C/C++头文件与变量的声明和定义最近遇到了变量重复包含的问题,才发现自己有好多知识已经模糊了,真惭愧。首先说下头文件,其实头文件对计算机而言没什么作用,她只是在预编译时在#include的地方展开一...
  • mountzf
  • mountzf
  • 2016年06月27日 11:20
  • 4087

C++头文件保护符和变量的声明定义

#ifndef #define #endif头文件保护符和变量的声明和定义,有例子有真相。

keil 中——C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法

详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!            以前写单片机程序时总是把所用函数和变量都写在一个c文件里,后来遇到大点的项目,程序动则...
  • Cowena
  • Cowena
  • 2015年11月09日 09:02
  • 2483

详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!

以前写单片机程序时总是把所用函数和变量都写在一个c文件里,后来遇到大点的项目,程序动则几千行,这种方式无疑会带来N多麻烦,相信大家都有所体验吧!         后来学会了在keil里进行模块化编程...
  • asda56
  • asda56
  • 2014年03月28日 11:28
  • 670

头文件的重复包含和变量的重复定义

转载至:点击打开链接 在c或c++中,头文件重复包含问题是程序员必须避免的问题,也是很多新手容易犯错的问题。 为什么要避免头文件重复包含呢?        1.我们知道在编译c或c++程序时候,...

关于头文件中定义的全局变量的包含

在头文件中定义了一个变量,若另一个文件再“int 变量名”,则会再产生一个相同变量的定义,在linux环境中编译时会发生如 menu.o:(.sbss+0x0): multiple defini...

C++Template头文件和定义分开编译的问题

(1) // Foo.h template class Foo { public: void f(); }; // Foo.cpp #include #include "Fo...

转 c++ 中头文件重复定义的问题

一、同一头文件中类嵌套的疑问 假设我们有两个类A和B,分别定义在各自的头文件A.h和B.h中,但是在A中要用到B,B中也要用到A,像下面的写法是错误的: class B; class A...

头文件定义全局变量等问题

原文地址:http://blog.chinaunix.net/uid-26921272-id-3313209.html 点击打开链接 全局变量可不可以定义在可被多个.C文件包含的头文件...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:头文件定义并初始化变量的问题
举报原因:
原因补充:

(最多只允许输入30个字)