写在前面:
由于时间的不足与学习的碎片化,写博客变得有些奢侈。
但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。
既然如此
不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录,记录笔者认为最通俗、最有帮助的资料,并尽量总结几句话指明本质,以便于日后搜索起来更加容易。
标题的结构如下:“类型”:“知识点”——“简短的解释”
部分内容由于保密协议无法上传。
点击此处进入学习日记的总目录
2022.7.19
一、C/C++: extern
—— 关键字
extern
是一种声明,不管在程序何处声明,在其声明前 或 其他文件中,都能使用该变量。- 在函数之外定义的变量其实就是一种声明。
- 声明最好和赋值分成两句。
- 最好别在头文件中使用
extern
,会引起很多不必要的麻烦。
链接:
extern
——关键字
二、C/C++:extern "C"
—— C/C++混合编程
- 实现C++和C的混合编程。
- 搭配
#ifdef __cplusplus
使用会有奇效。
三、C/C++:dll
与lib
——动态链接库和静态链接库
- 编写动态链接库:
- 新建
.h
文件与.cpp
文件 .cpp
文件引用.h
文件.h
文件中加入#define Import extern "C" _declspec(dllexport)
,用Import
来代替extern "C" _declspec(dllexport)
,确定需要导出的函数,如Import int sum(int a, int b);
。- 在
.cpp
文件中加入sum函数的具体定义。 - 最后编译
.cpp
,如果成功则在Debug
里可以看到.dll
动态库文件。
C语言和C++语言导出的
dll
文件中,函数的修饰名是不一样的。
如果要C语言风格的(.dll)
文件,就要再加上"extern C"
进行修饰,或者把源文件名的后缀改为(.c)
。
如果是要C++风格的(.dll)
文件,则源文件名后缀必须为(.cpp)
。
- 隐式调用
- 在编译
dll
文件时已经Import
函数的情况下,按照下图即可调用库函数。
- 显示调用
- 在编译
dll
文件时已经Import
函数的情况下,按照下图即可调用库函数。
四、C/C++:Sleep(1000)
——时延函数
- 头文件为
#include <synchapi.h>
。 - 括号里单位为ms,1000为时延1秒。
链接:
C\C++中计时、延时函数
五、C/C++:system("cls")
——清屏函数
- 头文件为
#include <stdlib.h>
。 - 清除屏幕,适合刷新率不高的程序,如果高的话会很闪眼睛。
链接:
C++ 刷新屏幕