
C&C++
文章平均质量分 55
C&C++
̋(๑˃́ꇴ˂̀๑)̋
这个作者很懒,什么都没留下…
展开
-
static_cast、dynamic_cast、const_cast、reinterpret_cast的区别
static_cast、dynamic_cast、const_cast、reinterpret_cast的区别原创 2024-01-18 13:31:37 · 980 阅读 · 0 评论 -
const char *、char const *、char * const、const char * const的区别
指针和 const 修饰符的不同组合之前的区别原创 2024-01-12 18:12:26 · 698 阅读 · 0 评论 -
设计模式:简单工厂、工厂方法、抽象工厂的区别
使用 C++ 举例并分析简单工厂、工厂方法和抽象工厂的区别原创 2024-01-10 13:20:39 · 605 阅读 · 0 评论 -
如何分别在macOS&Windows&Linux上对OpenSSL源码进行编译
Perl 是一种流行的脚本语言,它在 OpenSSL 的编译过程中扮演了重要的角色。在 OpenSSL 的源代码中,有一些用 Perl 脚本编写的配置文件,这些文件会在编译过程中被解析并生成一些 C 语言代码。在 OpenSSL 的源代码中,有一些用 NASM 编写的汇编语言代码,这些代码包含一些加密算法和哈希函数的实现。是 OpenSSL 编译过程中的一个脚本,它用于根据不同的平台和编译器生成 Makefile 文件,并配置 OpenSSL 编译选项,如编译器选项、库选项、安装路径等。原创 2023-04-28 02:12:21 · 826 阅读 · 0 评论 -
MSVC(Microsoft Visual C++) 中运行库的链接方式MD和MT的区别
MD:动态链接的运行库(Microsoft Visual C++ DLLs)将被作为一个单独的 DLL 文件提供,并且被动态地加载到应用程序中。MD链接方式适合于开发动态链接库(DLL) 或者将应用程序运行库与系统运行库隔离的情况。需要注意的是,在一个工程中,所有的对象文件和库文件必须使用相同的链接方式进行编译,否则会导致链接错误。MT:静态链接的运行库将被编译进生成的可执行文件中,不需要外部的DLL文件支持。这两种链接方式的主要区别在于编译后生成的可执行文件(或者动态链接库)是否依赖于动态链接的运行库。原创 2023-04-28 02:04:47 · 2129 阅读 · 0 评论 -
如何判断哪些boost库支持Header-Only?
如何判断哪些boost库支持Header-Only?在库根目录下执行命令即可查看需要编译才可使用的库模块,即不在此列表内的支持。原创 2023-04-27 22:12:43 · 665 阅读 · 0 评论 -
源码使用Boost.JSON编译报错,提示无法打开文件“libboost_json-*.lib” “libboost_container-*.lib”
源码使用Boost.JSON编译报错,提示无法打开文件“libboost_json-*.lib” “libboost_container-*.lib”原创 2022-02-11 04:45:49 · 1221 阅读 · 2 评论 -
std::lock_guard作用域内自动上锁解锁
std::lock_guard作用域内自动上锁解锁对于不同线程访问统一资源时,为了避免冲突一般都通过对目标共享变量上锁和解锁,让共享变量互斥第一种方式:一般情况可以在共享变量前后分别上锁解锁,至少需要以下三个操作// 定义锁std::mutex m_mutex;// 上锁m_mutex.lock();// 上锁和解锁之间为对共享变量的访问操作..... // 解锁m_mutex.unlock();第二种方式:使用std::lock_guard,在std::lock_原创 2020-09-03 20:34:53 · 1397 阅读 · 0 评论 -
函数内部使用malloc的几种方法
需求最近碰到一个需要在函数内部进行动态内存分配的需求,比如:void func1(char *p){ int n; //... 给n赋值 p = (char *)malloc(sizeof(char)*n); //... 向*p写数据}int main(int argc, char *argv[]){ char *p_data; fu...原创 2020-04-11 17:03:30 · 3824 阅读 · 0 评论