? ? ? ? ? ?【10】C++头文件_哔哩哔哩_bilibili?
头文件通常用于声明某些类型的函数,以便这些函数能够被使用到我的程序当中,比如,我们在一个文件中创建函数,但我们想在另一个文件中使用它----此时我们就需要一个公共的地方来存放这些东西。
1.首先,在main.cpp中写一个简单的函数:log()
2.让我们尝试着创建一个log.cpp文件,来解释上述的需要一个“公共的地方”到底是什么意思
?3.在log.cpp中尝试调用log()函数,发现报错
?Q: How do we tell that 'log' function does exist,but it was just defined elsewhere.
? ? ?如何判断我们写过的log函数的确存在,但只是因为它在别处定义了呢?
#include具有‘复制粘贴’的能力,将一个文件copy到另一个文件
1.让我们试试创建一个头文件log.h来解决上面的问题吧
2.在log.h中声明函数
? ? ? ---注意只写声明,不要写函数的定义,不然会在.cpp和.h中造成函数的重复定义
3.在log.cpp中使用#include log.h,点击运行就不会再有报错
#pragma once //首先,任何以”#“开头的命令,都被称为《预处理器命令》或者《预处理器指令》-这意味着它将会被优先处理 //pragma once-->只包括这个文件一次,组织我们单个头文件被多次包含 /* * include的工作原理是“复制和粘贴文件到其他文件”,所以,在创建commom.h文件which included log.h * 在log.cpp中同时#include log.h和common.h时 * 定义的结构体player就会产生重复,从而导致程序报错 * 所以,在头文件.h中添加#pragma once 可以避免这样的错误 */ //创建一个名为player的结构体,因为结构体的名字必须是唯一的;that's what pragma for struct player{};
在新建任意.h头文件时,发现Clion编译器自动生成了如下三条语句?,我想知道它有什么用?
#ifndef与#pragma once的功能相同,都是为了使得文件只被复写“仅一次”,从而避免“重定义”redefination.
书写格式:在define后面声明我们的东西