嵌入式软件-比较大的项目中,头文件中声明的变量和函数一般不太好确定前面是不是要加extern把

问题描述

比较大的项目中,头文件中声明的变量和函数一般不太好确定前面是不是要加extern把


比如这个.h文件中他用了一个ifdef,这个只是一个类似一个标志吧,任何程序里面都可以这样用吗,这是比较好的方式吗

解决方案

这是查看宏定义,判断是否define了这个宏。然后决定后面的各种定义。以endif结尾

解决方案二:

ifdef你可以看做if。。extern表示你函数定义在别的文件里。这里应该是为了防止冲突,通过宏值,决定是否是用本类中的该函数还是其他文件的相同命名的函数(起函数功能可能有所区别,但大多数都一样,可以无视)

解决方案三:

不是这样的,具体的在这说不清楚,你看一下这篇博客。http://blog.csdn.net/autocyz/article/details/42342479
尤其注意博客中最后用红色字写得内容。

时间: 2024-08-03 17:51:55

嵌入式软件-比较大的项目中,头文件中声明的变量和函数一般不太好确定前面是不是要加extern把的相关文章

c++-我在头文件里声明一个变量,然后在Cpp里赋值,怎么不行呢?

问题描述 我在头文件里声明一个变量,然后在Cpp里赋值,怎么不行呢? 我的mfc程序里自定义了一个头文件,里面声明一个变量比如 int a和声明一个函数Init(): 然后自定义一个cpp,里面实现函数Init().在函数体里面给a赋值:a=6: 然后在另一个dialog cpp里TRACE这个值试试,结果说: fatal error LNK1169: 找到一个或多个多重定义的符号,已经在...obj中定义过.反正编辑时不报错,编译链接时报错.怎么回事? 我有很多变量,我希望有一个Init函数,

C语言项目中头文件/代码文件的组织问题(使用VC6.0)

  个人备忘:   1.新建一个文本文件命名为main.c,使用VC6.0打开并编译,VC6.0会在当前文件夹下自动创建"工作区间"和"工程"文件,如:main.dsw,main.dsp等:然后就可以在"工程"下新建或添加你的.c和.h文件.   2.消灭头文件被多次include导致的错误.在每个头文件中加上如下的定义:(假设头文件的名字为MyDemo.h) #ifndef MY_DEMO_H #define MY_DEMO_H   //...

indows编程 句柄-关于winnt.h头文件中有关句柄(HANDLE)的一段源代码的两个疑问,求大神解答。

问题描述 关于winnt.h头文件中有关句柄(HANDLE)的一段源代码的两个疑问,求大神解答. 大家好!我对winnt.h中的这段代码有疑问: #ifdef STRICT typedef void *HANDLE; #if 0 && (_MSC_VER > 1000) #define DECLARE_HANDLE(name) struct name##__; typedef struct name##__ *name #else #define DECLARE_HANDLE(nam

单片机编程 keil-关于keil中头文件无法打开

问题描述 关于keil中头文件无法打开 最近在搞keil相关的东西,先遇到一问题,想向各位大神们请教! 我在Keil uVision4中新建了一个工程,添加了一个.c文件,其中包含#include,但是问题出现了说不能打开. 请问是什么问题?

youcompleteme-VIM插件YouCompleteMe如何配置才能对自定义头文件中的函数和类型进行补全

问题描述 VIM插件YouCompleteMe如何配置才能对自定义头文件中的函数和类型进行补全 我最近在折腾YouCompleteMe,对基本的C/C++关键字都能进行补全,但不能对自己项目中的头文件中的标识符进行补全,已经在 .ycm_extra_conf.py中通过'-I','自己项目头文件的路径'的方式把自己的头文件路径加入了flags中,但还是不能对自己编写的头文件中的函数和类型进行补全,应该怎么配置??? 解决方案 我看了你的答案,没什么有用的内容 解决方案二: 可以看看这篇博文: h

c++-我在头文件中通过添加现有项添加quote.h文件后,为何include是提示错误?

问题描述 我在头文件中通过添加现有项添加quote.h文件后,为何include是提示错误? 解决方案 你试一下把头文件放在和CPP一个目录下:或者写出quote.h完整路径. 解决方案二: #include后面有没有一个空格 解决方案三: 重启编译器,,,建议重建项目再试一次

c-请教大神库函数与头文件的关系

问题描述 请教大神库函数与头文件的关系 书上说头文件都是些函数的声明,库函数是函数的具体实现,想请问下,一个头文件和 一个库函数是不是一 一对应呢?在C的开头写上头文件是不是就相当于对要调用函数的 声明了呢? 解决方案 C语言的头文件和库文件(函数库) 在C语言中,头文件提供对常量的定义和对系统函数及库函数调用的声明(函数原型).存放的标准位置是/usr/include目录及其子目录. gcc的-I选项(增加头文件的搜索路径):gcc -I/usr/myInclude main.c 在标准位置及

eclipse中头文件无法识别??

问题描述 eclipse中头文件无法识别?? 解决方案 c++中头文件C++中头文件

VC中头文件没有怎么办

问题描述 VC中头文件没有怎么办 某些头文件在tc中有 在VC中没有 那该怎么办呢 解决方案 TC 和 VC 就没有对比性,TC 是 DOS 下运行的,开发的程序运行在 DOS 系统下.现在还有纯 DOS 系统吗?没有了吧! 怎么办?进行代码移植,将用 TC 实现的功能改用 VC 来实现.特别是以前 TC 下图形图像处理的函数,在 VC 下会更容易.更方便的实现. 解决方案二: 这个没办法,不同的编译器头文件有区别.实现也不一样 但是很多功能是有的.你需要的就是把tc的实现用vc提供的类库,AP