首页
学习
活动
专区
工具
TVP
发布

头文件面的ifndef defineendif的作用

大家好,又见面了,我是全栈君 c,c++里面,头文件面的ifndef /define/endif的作用 今天和宿舍同学讨论一个小程序,发现有点地方不大懂······ 是关于头文件面的一些地方...: 例如:要编写头文件test.h 在头文件开头写上两行: #ifndef _TEST_H #define _TEST_H//一般是文件名的大写...这样一来, 编译器编译a.cpp的时候,先根据#include “b.h “去编译b.h这个问题,再根据b.h里面的#include “d.h “,去编译d.h的这个文件,这样就把d.h里面的...class D编译了; 然后再根据a.cpp的第二句#include “c.h “,去编译c.h,最终还是会找到的d.h里面的class D,但是class D之前已经编译过了,所以就会报重定义错误...所以还是把头文件的内容都放在#ifndef和#endif中吧。 不管你的头文件会不会被多个文件引用,你都要加上这个。

47820
您找到你想要的搜索结果了吗?
是的
没有找到

Linux 标准错误输出重定向

Linux” >/dev/null 2>&1 “相关知识说明 在学习Linux的过程中,常会看到一些终端命令或者程序中有”>/dev/null 2>&1 “出现,由于已经遇到了好几次了,为了理解清楚,...百度了一相关的知识。...(stderr) 1)command : 表示shell命令或者为一个可执行程序 2)> : 表示重定向到哪里 3)/dev/null : 表示linux的空设备文件 4)2 : 表示标准错误输出...2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。...这条命令的意思就是在后台执行这个程序,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null文件,也就是清空.

3K100

Linux系统C++标准库函数

参考链接: C++ vfscanf() 1、字符串函数  头文件:  #include   函数名作用isalnum()测试字符是否为英文字母或数字isalpha()测试字符是否为英文字母...()测试字符是否为可打印字符 打印到屏幕上isspace()测试字符是否为空格字符ispunct()测试字符是否为标点符号或特殊符号isxdigit()测试字符是否为16进制数字 2、数据转换函数  头文件...)strtoull()将字符串转换成无符号长整数(C++11标准及以上)strtof()将字符串转换成浮点数(C++11标准及以上)strtod()将字符串转换成双精度数strtold()将字符串转换成长双精度数...权限说明  Linux权限说明作用S 提权和降权设置用户权限s 修改我当前组设置组权限t仅所有者可删除权限r 4读取权限w 2写入权限x 1执行权限第一个字母表示d 表明是一个文件夹 l 表明是以一个连接...其他方式表明是一个普通文件第2-4个字母表示所有者的权限第5-7个字母表示所在组的权限第8-10个字母表示其他组的权限 对进程也是有效  对内存也是有效  Linux 一切皆文件   头文件:  #

1.8K00

教程:为Linux系统导出内核头文件

最近由于项目需要,要编译mlibc,其中需要linux kernel headers,而使用apt安装的头文件总是有问题,因此,自己从内核里面导出了一份。在此写个简单的文章记录一。...下载内核的源代码 然后,去中科大的软件镜像站下载Linux内核源代码: https://mirrors.ustc.edu.cn/kernel.org/linux/kernel/v5.x/ 在页面里面找到...linux 5.15的代码包,下载: wget https://mirrors.ustc.edu.cn/kernel.org/linux/kernel/v5.x/linux-5.15.tar.xz 导出头文件...输入以下命令,即可导出内核头文件到build/目录下。其中,ARCH表示要导出的架构,按照自己的需要来输入。.../build 然后我们就能在build目录下看到导出好的内核头文件了。

31430

c++ string 头文件_C 标准<stdlib.h>

参考链接: C++ mblen() C 标准库  学习环境搭建1_Linux C语言_嵌入式开发工程师-创客学院​www.makeru.com.cn  数据类型_Linux C语言..._嵌入式开发工程师-创客学院​www.makeru.com.cn  简介  stdlib .h 头文件定义了四个变量类型、一些宏和各种通用工具函数。  ...库宏  下面是头文件 stdlib.h 中定义的宏:  序号宏 & 描述1NULL这个宏是一个空指针常量的值。2EXIT_FAILURE这是 exit 函数失败时要返回的值。...简介  stdlib .h 头文件定义了四个变量类型、一些宏和各种通用工具函数。  ...库宏  下面是头文件 stdlib.h 中定义的宏:  序号宏 & 描述1NULL这个宏是一个空指针常量的值。2EXIT_FAILURE这是 exit 函数失败时要返回的值。

88400

Linux开发stm32 ④ | 标准固件库工程开发

首先来解决第一个问题——如何告诉编译器找到这些头文件?...其实这个问题在讲使用gcc的时候有讲:当头文件不和源文件在一个目录时,需要使用-I(大写i)参数给编译器添加头文件搜索目录,所以修改一makefile: ?...可以在c文件全部使用相对于makefile的相对路径,显然这是最笨的办法,因为这么多文件,不可能一步一步添加,但是,在linux可以使用find命令来寻找目录下的文件,所以我们使用find ./ -name...这个时候,我们基本的两个大问题就解决完了,接下来编译器参数,一个是添加宏定义,首先是芯片型号宏定义STM32F10X_HD,然后是USE_STDPERIPH_DRIVER,表明我们使用了标准外设驱动库;...另一个是添加我们之前的头文件路径: ?

1.5K20

linux系统fcntl函数解析与标准IO函数介绍

-----今天是最后一篇文章关于linux系统下文件IO操作了,从明天起开始写文件属性的文章了,欢迎大家来学习,一起进步。(同时也欢迎大家批评指出错误,我会及时纠正过来的)。...二、标准IO介绍: 1、什么是标准IO,什么又是文件IO?...标准IO是C库函数;而文件IO是linux系统的API,API类似于一种接口,是由操作系统提供的(说实话,在这之前,我这个人比较犟,好少会调用api,非得自己写一个函数,这样有的时候累的半死还不一定能够写出来...因此标准IO比文件IO性能要更高(这里的下一层是指硬件层存储区域,而我们的标准IO函数是应用层方面,它先向系统缓冲区操作,然后等待系统里面的write等函数操作,才把数据弄到硬件层上去)。...3、常用标准IO函数介绍: 常见的标准IO库函数有:fopen、fclose、fwrite、fread、ffulsh(刷新标准库函数的缓存,直接写进操作系统的缓冲区中)、fseek(其实在写这个的话,我自己也对这些函数的用法是一脸的懵逼

1K41
领券