原文:不要在.h文件中定义变量

今天在头文件.h中初始化了一个数组和函数,在编译的时候提示这个数组和函数重新定义了,检查后发现,犯了一个致命的错误,在头文件中定义变量。。。 以下引用别人的一篇说明,警示自己。 C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能,C语言模块化程序设计需理解如下概念: 模块即是一个.c文件和一个.h文件的结合,头文件 .h 中是对于该模块接口的声明 某模块提供给其它模块调用的外部函数及数 ...

2018-11-15 13:53 0 1711 推荐指数:

查看详情

C++静态成员变量要在类外部再定义或初始化的原因

C++静态成员变量要在类外部再定义或初始化,否则会产生错误。 class A { public: static int a; }; int A::a=0;   为什么要在类的外部进行定义的原因: 1. 在类,只是声明了静态变量,并没有定义。 2. 声明只是表明了变量 ...

Tue Sep 25 00:04:00 CST 2018 0 3338
C++静态成员变量要在类外部再定义或初始化的原因

我们知道C++类的静态成员变量是需要初始化的,但为什么要初始化呢。其实这句话“静态成员变量是需要初始化的”是有一定问题的,应该说“静态成员变量需要定义”才是准确的,而不是初始化。两者的区别在于:初始化是赋一个初始值,而定义是分配内存。静态成员变量在类仅仅是声明,没有定义,所以要在类的外面定义 ...

Sat May 09 04:33:00 CST 2020 0 1797
在头文件定义全局变量

让我们先来看一个例子。 在下面的工程,共有三个文件:main.cpp、func.cpp、var.h。 其中var.h定义了一个int型的变量: 在func定义了一个函数,返回刚才定义的var变量: 最后是main.c,在main函数调用func函数 ...

Mon Apr 08 08:13:00 CST 2013 0 4669
关于.c和.h定义变量的问题

最初调试的时候是因为有个错误在wavplay.h文件 于是我跳到了recorderl.h:从图中看到引用了main.h 出现这个问题的具体原因还是不太清楚: 不过我任务是因为: wavplay.h定义了 __WaveHeader 变量 ...

Tue Apr 10 17:57:00 CST 2018 0 1080
能不能在头文件定义全局变量

编译器驱动程序 大多数编译系统提供编译器驱动程序(compiler driver),它代表用户在需要时调用语言预处理器、编译器、汇编器、和链接器。 我们所常说的 “编译生成可执行文件” 实际包括以下过程: 预处理器 (某些编译系统,预处理器被集成到 编译器 ) 处理预处理指令 ...

Mon Jan 25 22:33:00 CST 2021 0 365
c语言头文件定义全局变量的问题

问题是这么开始的: 最近在看一个PHP的扩展源码,编译的时候的遇到一个问题: 仔细看了一下源码,发现在头文件 出现了全局变量定义。 简化一下后,可以这么理解: 这两个c文件能否通过编译?想必有点经验的必会说 不会,重定义了。 那么是否真的如此?并不这么简单 ...

Fri Aug 07 04:15:00 CST 2015 0 9110
c语言头文件定义全局变量的问题

c语言头文件定义全局变量的问题 (转http://www.cnblogs.com/Sorean/) 先说一下,全局变量只能定义在 函数里面,任意函数,其他函数在使用的时候用extern声明。千万不要往头文件里面写定义(int aa)。 即使是写,也只写声明 即可 extern int aa ...

Tue Oct 11 22:20:00 CST 2016 0 3350
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM